|
@@ -12,16 +12,19 @@ using Object = UnityEngine.Object;
|
|
|
|
|
|
public enum AchieveType
|
|
|
{
|
|
|
- Elf,
|
|
|
- AD,
|
|
|
- Skill,
|
|
|
- Sign,
|
|
|
- Share,
|
|
|
- Flower,
|
|
|
- Person,
|
|
|
- Garden,
|
|
|
+ TotalPerson,
|
|
|
+
|
|
|
+ ElfLevel,
|
|
|
+ GardenLevel,
|
|
|
+
|
|
|
+ AdAmt,
|
|
|
+ SkillAmt,
|
|
|
+ SignAmt,
|
|
|
+ ShareAmt,
|
|
|
+ FlowerAmt,
|
|
|
+ MiniGameAmt,
|
|
|
+
|
|
|
TotalCoin,
|
|
|
- MiniGame,
|
|
|
FlowerCoin,
|
|
|
CurrentCoin,
|
|
|
}
|
|
@@ -30,57 +33,38 @@ public class Achieve
|
|
|
{
|
|
|
#region 变量
|
|
|
|
|
|
- public string Desc
|
|
|
+ public string ID
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
- return Language.GetStr("AchieveDesc", ID);
|
|
|
+ return "Achieve" + ID_;
|
|
|
}
|
|
|
}
|
|
|
- public string Name
|
|
|
+ public string Desc
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
- return Language.GetStr("AchieveName", ID);
|
|
|
+ return Language.GetStr("AchieveDesc", ID);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- public int ID_;
|
|
|
- public string ID
|
|
|
+ public string Name
|
|
|
{
|
|
|
get
|
|
|
{
|
|
|
- return "Achieve" + ID_;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public bool Regist
|
|
|
- {
|
|
|
- get { return Regist_; }
|
|
|
- set
|
|
|
- {
|
|
|
- Regist_ = value;
|
|
|
-
|
|
|
- if (Regist_)
|
|
|
- {
|
|
|
- AchieveItem = ManaReso.GetAchieveItem();
|
|
|
-
|
|
|
- RegistValue();
|
|
|
- }
|
|
|
+ return Language.GetStr("AchieveName", ID);
|
|
|
}
|
|
|
}
|
|
|
- public bool Regist_;
|
|
|
-
|
|
|
- public string Icon_;
|
|
|
public Sprite Icon
|
|
|
{
|
|
|
get { return ManaReso.Load<Sprite>(Icon_, Folder.UI); }
|
|
|
}
|
|
|
|
|
|
+ public int ID_;
|
|
|
+ public bool Available = true;
|
|
|
+ public string Icon_;
|
|
|
+
|
|
|
public int Index;
|
|
|
public int Parent;
|
|
|
- public bool Valid;
|
|
|
- public bool Finish;
|
|
|
public bool Delete;
|
|
|
public float Person;
|
|
|
public float CoinPerson;
|
|
@@ -101,20 +85,18 @@ public class Achieve
|
|
|
|
|
|
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);
|
|
|
+ Delete = Auxiliary.BoolParse(attribute[7].Value, false);
|
|
|
+ Parent = Auxiliary.IntParse(attribute[6].Value, -1);
|
|
|
|
|
|
ID_ = int.Parse(attribute[0].Value);
|
|
|
Index = int.Parse(attribute[1].Value);
|
|
|
+ Value = double.Parse(attribute[5].Value);
|
|
|
|
|
|
- Person = AwardParse(attribute[10].Value);
|
|
|
- CoinPerson = AwardParse(attribute[9].Value);
|
|
|
- DiamondOnce = AwardParse(attribute[8].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);
|
|
|
|
|
@@ -129,12 +111,13 @@ public class Achieve
|
|
|
{
|
|
|
ManaDebug.Log(string.Format("获得钻石<color=red>{0}</color> 参观人次+<color=red>{1}</color> 每人次金币+<color=red>{2}</color>", DiamondOnce, Person, CoinPerson));
|
|
|
|
|
|
- Valid = false;
|
|
|
-
|
|
|
ManaData.Diamond += DiamondOnce;
|
|
|
ManaData.SkillPerson += Person;
|
|
|
ManaData.SkillCoinPerson += CoinPerson;
|
|
|
- ManaAchieve.DeleDic[Type] = null;
|
|
|
+
|
|
|
+ Available = false;
|
|
|
+
|
|
|
+ ManaAchieve.DeleDic[Type] -= UpdateValue;
|
|
|
|
|
|
if (Delete)
|
|
|
{
|
|
@@ -142,19 +125,20 @@ public class Achieve
|
|
|
|
|
|
if (PostAchieveList.Count > 0)
|
|
|
{
|
|
|
- PostAchieveList[0].Regist = true;
|
|
|
-
|
|
|
- PostAchieveList.RemoveAt(0);
|
|
|
+ PostAchieveList[0].Regist();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- UpdateStatus();
|
|
|
+ ToComplete();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void RegistValue()
|
|
|
+
|
|
|
+ public void Regist()
|
|
|
{
|
|
|
+ AchieveItem = ManaReso.GetAchieveItem();
|
|
|
+
|
|
|
Dictionary<string, Transform> dic = new Dictionary<string, Transform>();
|
|
|
|
|
|
Auxiliary.CompileDic(AchieveItem, dic);
|
|
@@ -168,7 +152,6 @@ public class Achieve
|
|
|
|
|
|
ManaLan.Add(Tit, new LanStr("AchieveName", ID));
|
|
|
ManaLan.Add(Lab, new LanStr("AchieveDesc", ID));
|
|
|
- ManaAchieve.DeleDic[Type] += UpdateValue;
|
|
|
|
|
|
Image.sprite = Icon;
|
|
|
AchieveItem.SetSiblingIndex(Index - 1);
|
|
@@ -176,8 +159,16 @@ public class Achieve
|
|
|
Button.onClick.RemoveAllListeners();
|
|
|
Button.onClick.AddListener(GetAward);
|
|
|
|
|
|
- UpdateValue();
|
|
|
- UpdateStatus();
|
|
|
+ if (Available)
|
|
|
+ {
|
|
|
+ UpdateValue();
|
|
|
+
|
|
|
+ ManaAchieve.DeleDic[Type] += UpdateValue;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ToComplete();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -185,31 +176,31 @@ public class Achieve
|
|
|
{
|
|
|
double value;
|
|
|
|
|
|
- if (Type == AchieveType.AD)
|
|
|
+ if (Type == AchieveType.AdAmt)
|
|
|
{
|
|
|
value = ManaData.AD;
|
|
|
}
|
|
|
- else if (Type == AchieveType.Skill)
|
|
|
+ else if (Type == AchieveType.SkillAmt)
|
|
|
{
|
|
|
value = ManaData.Skill;
|
|
|
}
|
|
|
- else if (Type == AchieveType.Sign)
|
|
|
+ else if (Type == AchieveType.SignAmt)
|
|
|
{
|
|
|
value = ManaData.SignAmt;
|
|
|
}
|
|
|
- else if (Type == AchieveType.Share)
|
|
|
+ else if (Type == AchieveType.ShareAmt)
|
|
|
{
|
|
|
value = ManaData.Share;
|
|
|
}
|
|
|
- else if (Type == AchieveType.Flower)
|
|
|
+ else if (Type == AchieveType.FlowerAmt)
|
|
|
{
|
|
|
value = ManaGarden.MyFlower;
|
|
|
}
|
|
|
- else if (Type == AchieveType.Person)
|
|
|
+ else if (Type == AchieveType.TotalPerson)
|
|
|
{
|
|
|
- value = ManaData.Person;
|
|
|
+ value = ManaData.TotalPerson;
|
|
|
}
|
|
|
- else if (Type == AchieveType.Elf)
|
|
|
+ else if (Type == AchieveType.ElfLevel)
|
|
|
{
|
|
|
value = ManaData.Elf;
|
|
|
}
|
|
@@ -217,7 +208,7 @@ public class Achieve
|
|
|
{
|
|
|
value = ManaData.TotalCoin;
|
|
|
}
|
|
|
- else if (Type == AchieveType.MiniGame)
|
|
|
+ else if (Type == AchieveType.MiniGameAmt)
|
|
|
{
|
|
|
value = ManaData.MiniGameAmt;
|
|
|
}
|
|
@@ -229,7 +220,7 @@ public class Achieve
|
|
|
{
|
|
|
value = ManaData.Coin;
|
|
|
}
|
|
|
- else if (Type == AchieveType.Garden)
|
|
|
+ else if (Type == AchieveType.GardenLevel)
|
|
|
{
|
|
|
value = ManaData.Level;
|
|
|
}
|
|
@@ -238,51 +229,25 @@ public class Achieve
|
|
|
throw new Exception();
|
|
|
}
|
|
|
|
|
|
- Slider.value = (float)(value / Value);
|
|
|
-
|
|
|
- if (value >= Value)
|
|
|
- {
|
|
|
- Finish = true;
|
|
|
- }
|
|
|
+ UpdateValue(value);
|
|
|
}
|
|
|
|
|
|
public void UpdateValue(double value)
|
|
|
{
|
|
|
- if (Valid == false)
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- Slider.value = (float)(value/Value);
|
|
|
+ Slider.value = (float)(value / Value);
|
|
|
|
|
|
if (value >= Value)
|
|
|
{
|
|
|
- Finish = true;
|
|
|
-
|
|
|
- UpdateStatus();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void UpdateStatus()
|
|
|
- {
|
|
|
- if (Finish == false)
|
|
|
- {
|
|
|
- StatusProcess();
|
|
|
+ ToAvailible();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- if (Valid)
|
|
|
- {
|
|
|
- StatusAvailible();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- StausComplete();
|
|
|
- }
|
|
|
+ ToProcess(value);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void StatusProcess()
|
|
|
+
|
|
|
+ public void ToProcess(double value)
|
|
|
{
|
|
|
List<object> objList = new List<object>();
|
|
|
|
|
@@ -314,7 +279,7 @@ public class Achieve
|
|
|
ManaLan.Add(BtnLab, objList.ToArray());
|
|
|
}
|
|
|
|
|
|
- public void StatusAvailible()
|
|
|
+ public void ToAvailible()
|
|
|
{
|
|
|
List<object> objList = new List<object>();
|
|
|
|
|
@@ -346,8 +311,10 @@ public class Achieve
|
|
|
ManaLan.Add(BtnLab, objList.ToArray());
|
|
|
}
|
|
|
|
|
|
- public void StausComplete()
|
|
|
+ public void ToComplete()
|
|
|
{
|
|
|
+ Slider.value = 1;
|
|
|
+
|
|
|
Button.image.material = null;
|
|
|
Button.interactable = false;
|
|
|
|
|
@@ -355,42 +322,13 @@ public class Achieve
|
|
|
}
|
|
|
|
|
|
|
|
|
- public int ParentParse(string str)
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(str))
|
|
|
- {
|
|
|
- return -1;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return int.Parse(str);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public bool BoolParse(string str)
|
|
|
- {
|
|
|
- return Convert.ToBoolean(int.Parse(str));
|
|
|
- }
|
|
|
-
|
|
|
- public float AwardParse(string str)
|
|
|
- {
|
|
|
- if (string.IsNullOrEmpty(str))
|
|
|
- {
|
|
|
- return 0;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return float.Parse(str);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
public AchieveType TypeParse(string str)
|
|
|
{
|
|
|
int integer = int.Parse(str);
|
|
|
|
|
|
if (integer == 1)
|
|
|
{
|
|
|
- return AchieveType.Garden;
|
|
|
+ return AchieveType.GardenLevel;
|
|
|
}
|
|
|
else if (integer == 2)
|
|
|
{
|
|
@@ -402,35 +340,35 @@ public class Achieve
|
|
|
}
|
|
|
else if (integer == 4)
|
|
|
{
|
|
|
- return AchieveType.Elf;
|
|
|
+ return AchieveType.ElfLevel;
|
|
|
}
|
|
|
else if (integer == 5)
|
|
|
{
|
|
|
- return AchieveType.Flower;
|
|
|
+ return AchieveType.FlowerAmt;
|
|
|
}
|
|
|
else if (integer == 6)
|
|
|
{
|
|
|
- return AchieveType.Person;
|
|
|
+ return AchieveType.TotalPerson;
|
|
|
}
|
|
|
else if (integer == 7)
|
|
|
{
|
|
|
- return AchieveType.Skill;
|
|
|
+ return AchieveType.SkillAmt;
|
|
|
}
|
|
|
else if (integer == 8)
|
|
|
{
|
|
|
- return AchieveType.AD;
|
|
|
+ return AchieveType.AdAmt;
|
|
|
}
|
|
|
else if (integer == 9)
|
|
|
{
|
|
|
- return AchieveType.Sign;
|
|
|
+ return AchieveType.SignAmt;
|
|
|
}
|
|
|
else if (integer == 10)
|
|
|
{
|
|
|
- return AchieveType.Share;
|
|
|
+ return AchieveType.ShareAmt;
|
|
|
}
|
|
|
else if (integer == 11)
|
|
|
{
|
|
|
- return AchieveType.MiniGame;
|
|
|
+ return AchieveType.MiniGameAmt;
|
|
|
}
|
|
|
else if (integer == 12)
|
|
|
{
|
|
@@ -453,11 +391,11 @@ public class ManaAchieve : Regist
|
|
|
public static UnityAction<double> Sign;
|
|
|
public static UnityAction<double> Share;
|
|
|
public static UnityAction<double> Flower;
|
|
|
- public static UnityAction<double> Person;
|
|
|
public static UnityAction<double> Garden;
|
|
|
public static UnityAction<double> TotalCoin;
|
|
|
public static UnityAction<double> MiniGame;
|
|
|
public static UnityAction<double> FlowerCoin;
|
|
|
+ public static UnityAction<double> TotalPerson;
|
|
|
public static UnityAction<double> CurrentCoin;
|
|
|
|
|
|
public static Dictionary<int, Achieve> AchieveDic = new Dictionary<int, Achieve>();
|
|
@@ -465,55 +403,52 @@ public class ManaAchieve : Regist
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
- public override void Instantiate()
|
|
|
+ public override void RegistValueA()
|
|
|
{
|
|
|
+ DeleDic.Add(AchieveType.ElfLevel, Elf);
|
|
|
+ DeleDic.Add(AchieveType.AdAmt, AD);
|
|
|
+ DeleDic.Add(AchieveType.SkillAmt, Skill);
|
|
|
+ DeleDic.Add(AchieveType.SignAmt, Sign);
|
|
|
+ DeleDic.Add(AchieveType.ShareAmt, Share);
|
|
|
+ DeleDic.Add(AchieveType.FlowerAmt, Flower);
|
|
|
+ DeleDic.Add(AchieveType.TotalPerson, TotalPerson);
|
|
|
+ DeleDic.Add(AchieveType.GardenLevel, Garden);
|
|
|
+ DeleDic.Add(AchieveType.TotalCoin, TotalCoin);
|
|
|
+ DeleDic.Add(AchieveType.MiniGameAmt, MiniGame);
|
|
|
+ DeleDic.Add(AchieveType.FlowerCoin, FlowerCoin);
|
|
|
+ DeleDic.Add(AchieveType.CurrentCoin, CurrentCoin);
|
|
|
+
|
|
|
+
|
|
|
List<XmlAttributeCollection> attributeList = Data.GetAchieveConfig();
|
|
|
|
|
|
for (int i = 0; i < attributeList.Count; i++)
|
|
|
{
|
|
|
new Achieve(attributeList[i]);
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- public override void RegistValueA()
|
|
|
- {
|
|
|
- DeleDic.Add(AchieveType.Elf, Elf);
|
|
|
- DeleDic.Add(AchieveType.AD, AD);
|
|
|
- DeleDic.Add(AchieveType.Skill, Skill);
|
|
|
- DeleDic.Add(AchieveType.Sign, Sign);
|
|
|
- DeleDic.Add(AchieveType.Share, Share);
|
|
|
- DeleDic.Add(AchieveType.Flower, Flower);
|
|
|
- DeleDic.Add(AchieveType.Person, Person);
|
|
|
- DeleDic.Add(AchieveType.Garden, Garden);
|
|
|
- DeleDic.Add(AchieveType.TotalCoin, TotalCoin);
|
|
|
- DeleDic.Add(AchieveType.MiniGame, MiniGame);
|
|
|
- DeleDic.Add(AchieveType.FlowerCoin, FlowerCoin);
|
|
|
- DeleDic.Add(AchieveType.CurrentCoin, CurrentCoin);
|
|
|
|
|
|
List<int> achieveList = Data.GetAchieveList();
|
|
|
|
|
|
for (int i = 0; i < achieveList.Count; i++)
|
|
|
{
|
|
|
- AchieveDic[achieveList[i]].Valid = false;
|
|
|
- AchieveDic[achieveList[i]].Finish = true;
|
|
|
+ AchieveDic[achieveList[i]].Available = false;
|
|
|
}
|
|
|
|
|
|
|
|
|
foreach (var kv in AchieveDic)
|
|
|
{
|
|
|
- if (kv.Value.Valid)
|
|
|
+ if (kv.Value.Available)
|
|
|
{
|
|
|
- if (kv.Value.Parent == -1 || !AchieveDic[kv.Value.Parent].Valid)
|
|
|
+ if (kv.Value.Parent == -1 || !AchieveDic[kv.Value.Parent].Available)
|
|
|
{
|
|
|
- kv.Value.Regist = true;
|
|
|
+ kv.Value.Regist();
|
|
|
}
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (kv.Value.Delete == false)
|
|
|
{
|
|
|
- kv.Value.Regist = true;
|
|
|
- kv.Value.Slider.value = 1;
|
|
|
+ kv.Value.Regist();
|
|
|
}
|
|
|
}
|
|
|
}
|