|
@@ -58,21 +58,43 @@ public class Achieve
|
|
{
|
|
{
|
|
get { return ManaReso.Load<Sprite>(Icon_, Folder.UI); }
|
|
get { return ManaReso.Load<Sprite>(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 int ID_;
|
|
- public bool Available = true;
|
|
|
|
public string Icon_;
|
|
public string Icon_;
|
|
|
|
+ public double CurrentValue_;
|
|
|
|
|
|
public int Index;
|
|
public int Index;
|
|
public int Parent;
|
|
public int Parent;
|
|
- public bool Delete;
|
|
|
|
- public bool Availible;
|
|
|
|
public float Person;
|
|
public float Person;
|
|
public float CoinPerson;
|
|
public float CoinPerson;
|
|
public float DiamondOnce;
|
|
public float DiamondOnce;
|
|
- public double Value;
|
|
|
|
- public AchieveType Type;
|
|
|
|
- public List<Achieve> PostAchieveList = new List<Achieve>();
|
|
|
|
|
|
+
|
|
|
|
+ public bool Valid = true;
|
|
|
|
+ public bool Delete;
|
|
|
|
+ public bool Complete;
|
|
|
|
+ public double TargetValue;
|
|
|
|
+
|
|
|
|
+ public Achieve PostAchieve;
|
|
|
|
+ public AchieveType AchieveType;
|
|
|
|
|
|
public Text Tit;
|
|
public Text Tit;
|
|
public Text Lab;
|
|
public Text Lab;
|
|
@@ -87,23 +109,24 @@ public class Achieve
|
|
public Achieve(XmlAttributeCollection attribute)
|
|
public Achieve(XmlAttributeCollection attribute)
|
|
{
|
|
{
|
|
Icon_ = attribute[11].Value;
|
|
Icon_ = attribute[11].Value;
|
|
- Type = TypeParse(attribute[4].Value);
|
|
|
|
Delete = Auxiliary.BoolParse(attribute[7].Value, false);
|
|
Delete = Auxiliary.BoolParse(attribute[7].Value, false);
|
|
Parent = Auxiliary.IntParse(attribute[6].Value, -1);
|
|
Parent = Auxiliary.IntParse(attribute[6].Value, -1);
|
|
|
|
+ AchieveType = TypeParse(attribute[4].Value);
|
|
|
|
|
|
ID_ = int.Parse(attribute[0].Value);
|
|
ID_ = int.Parse(attribute[0].Value);
|
|
Index = int.Parse(attribute[1].Value) - 1;
|
|
Index = int.Parse(attribute[1].Value) - 1;
|
|
- Value = double.Parse(attribute[5].Value);
|
|
|
|
|
|
+ TargetValue = double.Parse(attribute[5].Value);
|
|
|
|
|
|
Person = Auxiliary.FloatParse(attribute[10].Value, 0);
|
|
Person = Auxiliary.FloatParse(attribute[10].Value, 0);
|
|
CoinPerson = Auxiliary.FloatParse(attribute[9].Value, 0);
|
|
CoinPerson = Auxiliary.FloatParse(attribute[9].Value, 0);
|
|
DiamondOnce = Auxiliary.FloatParse(attribute[8].Value, 0);
|
|
DiamondOnce = Auxiliary.FloatParse(attribute[8].Value, 0);
|
|
|
|
|
|
|
|
+
|
|
ManaAchieve.AchieveDic.Add(ID_, this);
|
|
ManaAchieve.AchieveDic.Add(ID_, this);
|
|
|
|
|
|
if (Parent != -1)
|
|
if (Parent != -1)
|
|
{
|
|
{
|
|
- ManaAchieve.AchieveDic[Parent].PostAchieveList.Add(this);
|
|
|
|
|
|
+ ManaAchieve.AchieveDic[Parent].PostAchieve = this;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -123,43 +146,44 @@ public class Achieve
|
|
Button = dic["Btn"].GetComponent<Button>();
|
|
Button = dic["Btn"].GetComponent<Button>();
|
|
BtnLab = dic["BtnLab"].GetComponent<Text>();
|
|
BtnLab = dic["BtnLab"].GetComponent<Text>();
|
|
|
|
|
|
- ManaLan.Add(Tit, new LanStr("AchieveName", ID));
|
|
|
|
|
|
|
|
- Lab.text = GetDescription(Desc, Value);
|
|
|
|
|
|
+ Lab.text = GetDescription(Desc, TargetValue);
|
|
|
|
|
|
Image.sprite = Icon;
|
|
Image.sprite = Icon;
|
|
|
|
+
|
|
AchieveItem.SetSiblingIndex(Index);
|
|
AchieveItem.SetSiblingIndex(Index);
|
|
|
|
|
|
Button.onClick.RemoveAllListeners();
|
|
Button.onClick.RemoveAllListeners();
|
|
Button.onClick.AddListener(GetAward);
|
|
Button.onClick.AddListener(GetAward);
|
|
|
|
|
|
- if (Available)
|
|
|
|
|
|
+ ManaLan.Add(Tit, new LanStr("AchieveName", ID));
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (Valid)
|
|
{
|
|
{
|
|
- UpdateValue();
|
|
|
|
|
|
+ UpdateStatus();
|
|
|
|
|
|
- ManaAchieve.DeleDic[Type] += UpdateValue;
|
|
|
|
|
|
+ ManaAchieve.DeleDic.Add(AchieveType, UpdateStatus);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- ToComplete();
|
|
|
|
|
|
+ ToFinish();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
public void GetAward()
|
|
public void GetAward()
|
|
{
|
|
{
|
|
- ManaAchieve.AchieveDepth--;
|
|
|
|
-
|
|
|
|
- ManaDebug.Log(string.Format("获得钻石<color=red>{0}</color> 参观人次+<color=red>{1}</color> 每人次金币+<color=red>{2}</color>", DiamondOnce, Person, CoinPerson));
|
|
|
|
-
|
|
|
|
- ManaAudio.PlayClip(Clip.CurrentClip);
|
|
|
|
|
|
+ Valid = false;
|
|
|
|
|
|
ManaData.Diamond += DiamondOnce;
|
|
ManaData.Diamond += DiamondOnce;
|
|
ManaData.SkillPerson += Person;
|
|
ManaData.SkillPerson += Person;
|
|
ManaData.SkillCoinPerson += CoinPerson;
|
|
ManaData.SkillCoinPerson += CoinPerson;
|
|
|
|
|
|
- Available = false;
|
|
|
|
|
|
+ ManaAudio.PlayClip(Clip.CurrentClip);
|
|
|
|
+
|
|
|
|
+ ManaAchieve.AchieveDepth--;
|
|
|
|
|
|
- ManaAchieve.DeleDic[Type] -= UpdateValue;
|
|
|
|
|
|
+ ManaAchieve.DeleDic.Remove(AchieveType);
|
|
|
|
|
|
if (Delete)
|
|
if (Delete)
|
|
{
|
|
{
|
|
@@ -167,68 +191,67 @@ public class Achieve
|
|
|
|
|
|
AchieveItem = null;
|
|
AchieveItem = null;
|
|
|
|
|
|
- if (PostAchieveList.Count > 0)
|
|
|
|
|
|
+ if (PostAchieve != null)
|
|
{
|
|
{
|
|
- PostAchieveList[0].Regist();
|
|
|
|
|
|
+ PostAchieve.Regist();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- ToComplete();
|
|
|
|
|
|
+ ToFinish();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- public AchieveType TypeParse(string str)
|
|
|
|
- {
|
|
|
|
- int integer = int.Parse(str);
|
|
|
|
|
|
|
|
- if (integer == 1)
|
|
|
|
|
|
+ public void UpdateStatus()
|
|
|
|
+ {
|
|
|
|
+ if (AchieveType == AchieveType.TotalPerson)
|
|
{
|
|
{
|
|
- return AchieveType.GardenLevel;
|
|
|
|
|
|
+ UpdateStatus(ManaData.TotalPerson);
|
|
}
|
|
}
|
|
- else if (integer == 2)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.ElfLevel)
|
|
{
|
|
{
|
|
- return AchieveType.CurrentCoin;
|
|
|
|
|
|
+ UpdateStatus(ManaData.ElfLevel);
|
|
}
|
|
}
|
|
- else if (integer == 3)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.GardenLevel)
|
|
{
|
|
{
|
|
- return AchieveType.TotalCoin;
|
|
|
|
|
|
+ UpdateStatus(ManaData.Level);
|
|
}
|
|
}
|
|
- else if (integer == 4)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.AdAmt)
|
|
{
|
|
{
|
|
- return AchieveType.ElfLevel;
|
|
|
|
|
|
+ UpdateStatus(ManaData.AdAmt);
|
|
}
|
|
}
|
|
- else if (integer == 5)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.SkillAmt)
|
|
{
|
|
{
|
|
- return AchieveType.FlowerAmt;
|
|
|
|
|
|
+ UpdateStatus(ManaData.SkillAmt);
|
|
}
|
|
}
|
|
- else if (integer == 6)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.SignAmt)
|
|
{
|
|
{
|
|
- return AchieveType.TotalPerson;
|
|
|
|
|
|
+ UpdateStatus(ManaData.SignAmt);
|
|
}
|
|
}
|
|
- else if (integer == 7)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.ShareAmt)
|
|
{
|
|
{
|
|
- return AchieveType.SkillAmt;
|
|
|
|
|
|
+ UpdateStatus(ManaData.ShareAmt);
|
|
}
|
|
}
|
|
- else if (integer == 8)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.FlowerAmt)
|
|
{
|
|
{
|
|
- return AchieveType.AdAmt;
|
|
|
|
|
|
+ UpdateStatus(ManaGarden.MyFlower);
|
|
}
|
|
}
|
|
- else if (integer == 9)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.MiniGameAmt)
|
|
{
|
|
{
|
|
- return AchieveType.SignAmt;
|
|
|
|
|
|
+ UpdateStatus(ManaData.MiniGameAmt);
|
|
}
|
|
}
|
|
- else if (integer == 10)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.TotalCoin)
|
|
{
|
|
{
|
|
- return AchieveType.ShareAmt;
|
|
|
|
|
|
+ UpdateStatus(ManaData.TotalCoin);
|
|
}
|
|
}
|
|
- else if (integer == 11)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.FlowerCoin)
|
|
{
|
|
{
|
|
- return AchieveType.MiniGameAmt;
|
|
|
|
|
|
+ UpdateStatus(ManaData.FlowerCoin);
|
|
}
|
|
}
|
|
- else if (integer == 12)
|
|
|
|
|
|
+ else if (AchieveType == AchieveType.CurrentCoin)
|
|
{
|
|
{
|
|
- return AchieveType.FlowerCoin;
|
|
|
|
|
|
+ UpdateStatus(ManaData.Coin);
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
@@ -236,85 +259,33 @@ public class Achieve
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public void UpdateStatus(double value)
|
|
|
|
+ {
|
|
|
|
+ CurrentValue = value;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
- public void UpdateValue()
|
|
|
|
|
|
+ public void ToFinish()
|
|
{
|
|
{
|
|
- double value;
|
|
|
|
|
|
+ Slider.value = 1;
|
|
|
|
|
|
- if (Type == AchieveType.AdAmt)
|
|
|
|
- {
|
|
|
|
- value = ManaData.AdAmt;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.SkillAmt)
|
|
|
|
- {
|
|
|
|
- value = ManaData.SkillAmt;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.SignAmt)
|
|
|
|
- {
|
|
|
|
- value = ManaData.SignAmt;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.ShareAmt)
|
|
|
|
- {
|
|
|
|
- value = ManaData.ShareAmt;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.FlowerAmt)
|
|
|
|
- {
|
|
|
|
- value = ManaGarden.MyFlower;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.TotalPerson)
|
|
|
|
- {
|
|
|
|
- value = ManaData.TotalPerson;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.ElfLevel)
|
|
|
|
- {
|
|
|
|
- value = ManaData.ElfLevel;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.TotalCoin)
|
|
|
|
- {
|
|
|
|
- value = ManaData.TotalCoin;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.MiniGameAmt)
|
|
|
|
- {
|
|
|
|
- value = ManaData.MiniGameAmt;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.FlowerCoin)
|
|
|
|
- {
|
|
|
|
- value = ManaData.FlowerCoin;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.CurrentCoin)
|
|
|
|
- {
|
|
|
|
- value = ManaData.Coin;
|
|
|
|
- }
|
|
|
|
- else if (Type == AchieveType.GardenLevel)
|
|
|
|
- {
|
|
|
|
- value = ManaData.Level;
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- throw new Exception();
|
|
|
|
- }
|
|
|
|
|
|
+ Complete = false;
|
|
|
|
|
|
- UpdateValue(value);
|
|
|
|
- }
|
|
|
|
|
|
+ Button.interactable = false;
|
|
|
|
|
|
- public void UpdateValue(double value)
|
|
|
|
- {
|
|
|
|
- Slider.value = (float)(value / Value);
|
|
|
|
|
|
+ Button.image.material = null;
|
|
|
|
|
|
- if (value >= Value)
|
|
|
|
- {
|
|
|
|
- ToAvailible();
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- ToProcess(value);
|
|
|
|
- }
|
|
|
|
|
|
+ ManaLan.Add(BtnLab, new LanStr("Object", "AchieveItem_BtnLab2"));
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
public void ToProcess(double value)
|
|
public void ToProcess(double value)
|
|
{
|
|
{
|
|
- Availible = false;
|
|
|
|
|
|
+ Complete = false;
|
|
|
|
+
|
|
|
|
+ Button.interactable = false;
|
|
|
|
+
|
|
|
|
+ Button.image.material = Shortcut.GrayMat;
|
|
|
|
+
|
|
|
|
|
|
List<object> objList = new List<object>();
|
|
List<object> objList = new List<object>();
|
|
|
|
|
|
@@ -323,7 +294,7 @@ public class Achieve
|
|
|
|
|
|
if (!DiamondOnce.Equal(0))
|
|
if (!DiamondOnce.Equal(0))
|
|
{
|
|
{
|
|
- objList.Add("<(钻石)>" + DiamondOnce.ToString("0"));
|
|
|
|
|
|
+ objList.Add("<(钻石)>" + DiamondOnce.ToString("0") + " ");
|
|
}
|
|
}
|
|
|
|
|
|
if (!CoinPerson.Equal(0))
|
|
if (!CoinPerson.Equal(0))
|
|
@@ -340,20 +311,26 @@ public class Achieve
|
|
objList.Add(Person.ToString("0") + " ");
|
|
objList.Add(Person.ToString("0") + " ");
|
|
}
|
|
}
|
|
|
|
|
|
- Button.image.material = ManaReso.Load<Material>("GrayMat", Folder.Effect);
|
|
|
|
- Button.interactable = false;
|
|
|
|
-
|
|
|
|
ManaLan.Add(BtnLab, objList.ToArray());
|
|
ManaLan.Add(BtnLab, objList.ToArray());
|
|
}
|
|
}
|
|
|
|
|
|
- public void ToAvailible()
|
|
|
|
|
|
+ public void ToComplete()
|
|
{
|
|
{
|
|
- if (!Availible)
|
|
|
|
|
|
+ if (Complete)
|
|
{
|
|
{
|
|
- ManaAchieve.AchieveDepth++;
|
|
|
|
|
|
+ return;
|
|
}
|
|
}
|
|
|
|
|
|
- Availible = true;
|
|
|
|
|
|
+
|
|
|
|
+ ManaAchieve.AchieveDepth++;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ Complete = true;
|
|
|
|
+
|
|
|
|
+ Button.interactable = true;
|
|
|
|
+
|
|
|
|
+ Button.image.material = null;
|
|
|
|
+
|
|
|
|
|
|
List<object> objList = new List<object>();
|
|
List<object> objList = new List<object>();
|
|
|
|
|
|
@@ -362,7 +339,7 @@ public class Achieve
|
|
|
|
|
|
if (!DiamondOnce.Equal(0))
|
|
if (!DiamondOnce.Equal(0))
|
|
{
|
|
{
|
|
- objList.Add("<(钻石)>" + DiamondOnce.ToString("0"));
|
|
|
|
|
|
+ objList.Add("<(钻石)>" + DiamondOnce.ToString("0") + " ");
|
|
}
|
|
}
|
|
|
|
|
|
if (!CoinPerson.Equal(0))
|
|
if (!CoinPerson.Equal(0))
|
|
@@ -379,24 +356,68 @@ public class Achieve
|
|
objList.Add(Person.ToString("0") + " ");
|
|
objList.Add(Person.ToString("0") + " ");
|
|
}
|
|
}
|
|
|
|
|
|
- Button.image.material = null;
|
|
|
|
- Button.interactable = true;
|
|
|
|
-
|
|
|
|
ManaLan.Add(BtnLab, objList.ToArray());
|
|
ManaLan.Add(BtnLab, objList.ToArray());
|
|
}
|
|
}
|
|
|
|
|
|
- public void ToComplete()
|
|
|
|
- {
|
|
|
|
- Slider.value = 1;
|
|
|
|
- Availible = false;
|
|
|
|
|
|
|
|
- Button.image.material = null;
|
|
|
|
- Button.interactable = false;
|
|
|
|
|
|
+ public AchieveType TypeParse(string str)
|
|
|
|
+ {
|
|
|
|
+ int integer = int.Parse(str);
|
|
|
|
|
|
- ManaLan.Add(BtnLab, new LanStr("Object", "AchieveItem_BtnLab2"));
|
|
|
|
|
|
+ if (integer == 1)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.GardenLevel;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 2)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.CurrentCoin;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 3)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.TotalCoin;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 4)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.ElfLevel;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 5)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.FlowerAmt;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 6)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.TotalPerson;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 7)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.SkillAmt;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 8)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.AdAmt;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 9)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.SignAmt;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 10)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.ShareAmt;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 11)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.MiniGameAmt;
|
|
|
|
+ }
|
|
|
|
+ else if (integer == 12)
|
|
|
|
+ {
|
|
|
|
+ return AchieveType.FlowerCoin;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ throw new Exception();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
public static string GetDescription(string desc, double value)
|
|
public static string GetDescription(string desc, double value)
|
|
{
|
|
{
|
|
return desc.Replace("[&value&]", value.ToString("0"));
|
|
return desc.Replace("[&value&]", value.ToString("0"));
|
|
@@ -419,43 +440,45 @@ public class ManaAchieve : Regist
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
Outline outline = ManaReso.Get<Outline>("C_Achieve");
|
|
Outline outline = ManaReso.Get<Outline>("C_Achieve");
|
|
|
|
+ Tween tween = outline.GetTweenOutline();
|
|
|
|
|
|
- if (outline != null)
|
|
|
|
|
|
+ if (tween == null)
|
|
|
|
+ {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (AchieveDepth_ == 0)
|
|
|
|
+ {
|
|
|
|
+ outline.enabled = false;
|
|
|
|
+
|
|
|
|
+ tween.Pause();
|
|
|
|
+ }
|
|
|
|
+ else if (AchieveDepth_ > 0)
|
|
{
|
|
{
|
|
- if (AchieveDepth_ == 0)
|
|
|
|
|
|
+ if (tween.InForward)
|
|
{
|
|
{
|
|
- outline.enabled = false;
|
|
|
|
|
|
+ tween.StartForward();
|
|
}
|
|
}
|
|
- else if (AchieveDepth_ > 0)
|
|
|
|
|
|
+ else if (tween.InBackward)
|
|
{
|
|
{
|
|
- outline.enabled = true;
|
|
|
|
-
|
|
|
|
- ManaReso.Get("C_Achieve").TweenForOutline();
|
|
|
|
|
|
+ tween.StartBackward();
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- throw new Exception();
|
|
|
|
|
|
+ tween.StartForward();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ throw new Exception();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
public static int AchieveDepth_;
|
|
public static int AchieveDepth_;
|
|
|
|
|
|
- public static UnityAction<double> TotalPerson;
|
|
|
|
- public static UnityAction<double> AdAmt;
|
|
|
|
- public static UnityAction<double> SkillAmt;
|
|
|
|
- public static UnityAction<double> SignAmt;
|
|
|
|
- public static UnityAction<double> ShareAmt;
|
|
|
|
- public static UnityAction<double> FlowerAmt;
|
|
|
|
- public static UnityAction<double> MiniGameAmt;
|
|
|
|
- public static UnityAction<double> ElfLevel;
|
|
|
|
- public static UnityAction<double> GardenLevel;
|
|
|
|
- public static UnityAction<double> TotalCoin;
|
|
|
|
- public static UnityAction<double> FlowerCoin;
|
|
|
|
- public static UnityAction<double> CurrentCoin;
|
|
|
|
-
|
|
|
|
public static Dictionary<int, Achieve> AchieveDic = new Dictionary<int, Achieve>();
|
|
public static Dictionary<int, Achieve> AchieveDic = new Dictionary<int, Achieve>();
|
|
public static Dictionary<AchieveType, UnityAction<double>> DeleDic = new Dictionary<AchieveType, UnityAction<double>>();
|
|
public static Dictionary<AchieveType, UnityAction<double>> DeleDic = new Dictionary<AchieveType, UnityAction<double>>();
|
|
|
|
|
|
@@ -467,18 +490,6 @@ public class ManaAchieve : Regist
|
|
{
|
|
{
|
|
Instance = this;
|
|
Instance = this;
|
|
|
|
|
|
- DeleDic.Add(AchieveType.TotalPerson, TotalPerson);
|
|
|
|
- DeleDic.Add(AchieveType.ElfLevel, ElfLevel);
|
|
|
|
- DeleDic.Add(AchieveType.GardenLevel, GardenLevel);
|
|
|
|
- DeleDic.Add(AchieveType.TotalCoin, TotalCoin);
|
|
|
|
- DeleDic.Add(AchieveType.FlowerCoin, FlowerCoin);
|
|
|
|
- DeleDic.Add(AchieveType.CurrentCoin, CurrentCoin);
|
|
|
|
- DeleDic.Add(AchieveType.AdAmt, AdAmt);
|
|
|
|
- DeleDic.Add(AchieveType.SkillAmt, SkillAmt);
|
|
|
|
- DeleDic.Add(AchieveType.SignAmt, SignAmt);
|
|
|
|
- DeleDic.Add(AchieveType.ShareAmt, ShareAmt);
|
|
|
|
- DeleDic.Add(AchieveType.FlowerAmt, FlowerAmt);
|
|
|
|
- DeleDic.Add(AchieveType.MiniGameAmt, MiniGameAmt);
|
|
|
|
|
|
|
|
List<XmlAttributeCollection> attributeList = Data.GetAchieveConfig();
|
|
List<XmlAttributeCollection> attributeList = Data.GetAchieveConfig();
|
|
|
|
|
|
@@ -492,22 +503,22 @@ public class ManaAchieve : Regist
|
|
|
|
|
|
for (int i = 0; i < achieveList.Count; i++)
|
|
for (int i = 0; i < achieveList.Count; i++)
|
|
{
|
|
{
|
|
- AchieveDic[achieveList[i]].Available = false;
|
|
|
|
|
|
+ AchieveDic[achieveList[i]].Valid = false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (var kv in AchieveDic)
|
|
foreach (var kv in AchieveDic)
|
|
{
|
|
{
|
|
- if (kv.Value.Available)
|
|
|
|
|
|
+ if (kv.Value.Valid)
|
|
{
|
|
{
|
|
- if (kv.Value.Parent == -1 || !AchieveDic[kv.Value.Parent].Available)
|
|
|
|
|
|
+ if (kv.Value.Parent == -1 || !AchieveDic[kv.Value.Parent].Valid)
|
|
{
|
|
{
|
|
kv.Value.Regist();
|
|
kv.Value.Regist();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- if (kv.Value.Delete == false)
|
|
|
|
|
|
+ if (!kv.Value.Delete)
|
|
{
|
|
{
|
|
kv.Value.Regist();
|
|
kv.Value.Regist();
|
|
}
|
|
}
|
|
@@ -523,7 +534,12 @@ public class ManaAchieve : Regist
|
|
|
|
|
|
public static void UpdateStatus(AchieveType type, double value)
|
|
public static void UpdateStatus(AchieveType type, double value)
|
|
{
|
|
{
|
|
- DeleDic[type].SafeInvoke(value);
|
|
|
|
|
|
+ UnityAction<double> action;
|
|
|
|
+
|
|
|
|
+ if (DeleDic.TryGetValue(type, out action))
|
|
|
|
+ {
|
|
|
|
+ DeleDic[type].SafeInvoke(value);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -542,4 +558,12 @@ public class ManaAchieve : Regist
|
|
|
|
|
|
Instance.RegistValueA();
|
|
Instance.RegistValueA();
|
|
}
|
|
}
|
|
-}
|
|
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+#region DebugList
|
|
|
|
+
|
|
|
|
+//状态的转换(进行中->待领取->已完成)
|
|
|
|
+//成就的存档(进行中 已完成)
|
|
|
|
+//Reload后的成就
|
|
|
|
+
|
|
|
|
+#endregion
|