ManaSign.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System;
  4. using System.Xml;
  5. using System.Collections;
  6. using System.Collections.Generic;
  7. public class Sign
  8. {
  9. public int Coin;
  10. public int Diamond;
  11. public Text Lab1;
  12. public Text Lab2;
  13. public Image Icon;
  14. public Image Mark;
  15. public List<int> FlowerList = new List<int>();
  16. public Sign(int index, Transform tra, XmlAttributeCollection attribute)
  17. {
  18. Dictionary<string, Transform> dic = new Dictionary<string, Transform>();
  19. Auxiliary.CompileDic(tra, dic);
  20. Lab1 = dic["Lab1"].GetComponent<Text>();
  21. Lab2 = dic["Lab2"].GetComponent<Text>();
  22. Icon = dic["Icon1"].GetComponent<Image>();
  23. Mark = dic["Icon2"].GetComponent<Image>();
  24. Lab2.text = index.ToString();
  25. if (!string.IsNullOrEmpty(attribute[1].Value))
  26. {
  27. string[] strings = attribute[1].Value.Split(',');
  28. for (int i = 0; i < strings.Length; i++)
  29. {
  30. FlowerList.Add(int.Parse(strings[i]));
  31. }
  32. Icon.sprite = ManaReso.Load<Sprite>("管理花园按钮", Folder.UI);
  33. }
  34. if (!string.IsNullOrEmpty(attribute[2].Value))
  35. {
  36. Diamond = int.Parse(attribute[2].Value);
  37. if (FlowerList == null)
  38. {
  39. Lab1.text = Diamond.ToString("0");
  40. Icon.sprite = ManaReso.Load<Sprite>("钻石", Folder.UI);
  41. }
  42. }
  43. if (!string.IsNullOrEmpty(attribute[3].Value))
  44. {
  45. Coin = int.Parse(attribute[3].Value);
  46. Lab1.text = Coin.ToString("0");
  47. Icon.sprite = ManaReso.Load<Sprite>("金币", Folder.UI);
  48. }
  49. }
  50. public void Get()
  51. {
  52. Mark.SetActive(true);
  53. if (FlowerList != null)
  54. {
  55. for (int i = 0; i < FlowerList.Count; i++)
  56. {
  57. if (ManaGarden.FlowerInfoDic[FlowerList[i]].Unlock == false)
  58. {
  59. ManaGarden.FlowerInfoDic[FlowerList[i]].Unlock = true;
  60. ManaData.SignIndex++;
  61. ManaData.SignIndex %= 21;
  62. ManaReso.SetText("Bb_InfoLab", Language.GetStr("FlowerName", "Flower" + FlowerList[i]));
  63. ManaReso.SetSprite("Bb_Info", ManaReso.Load<Sprite>("管理花园按钮", Folder.UI));
  64. Icon.sprite = ManaReso.Load<Sprite>("管理花园按钮", Folder.UI);
  65. Icon.SetActive(true);
  66. return;
  67. }
  68. }
  69. }
  70. if (Diamond > 0)
  71. {
  72. ManaData.SignIndex++;
  73. ManaData.SignIndex %= 21;
  74. ManaData.Diamond += Diamond;
  75. ManaReso.SetText("Bb_InfoLab", Diamond.ToString());
  76. ManaReso.SetSprite("Bb_Info", ManaReso.Load<Sprite>("钻石", Folder.UI));
  77. Icon.sprite = ManaReso.Load<Sprite>("钻石", Folder.UI);
  78. Icon.SetActive(true);
  79. }
  80. else if (Coin > 0)
  81. {
  82. ManaData.SignIndex++;
  83. ManaData.SignIndex %= 21;
  84. ManaData.Coin += Coin;
  85. ManaReso.SetText("Bb_InfoLab", Coin.ToString());
  86. ManaReso.SetSprite("Bb_Info", ManaReso.Load<Sprite>("金币", Folder.UI));
  87. Icon.sprite = ManaReso.Load<Sprite>("金币", Folder.UI);
  88. Icon.SetActive(true);
  89. }
  90. else
  91. {
  92. throw new Exception();
  93. }
  94. }
  95. }
  96. public class ManaSign : Regist
  97. {
  98. #region 变量
  99. public static Dictionary<int, Sign> SignDic = new Dictionary<int, Sign>();
  100. #endregion
  101. public static void Get()
  102. {
  103. SignDic[ManaData.SignIndex].Get();
  104. ManaData.Sign++;
  105. }
  106. public override void Instantiate()
  107. {
  108. }
  109. public override void RegistValueB()
  110. {
  111. List<XmlAttributeCollection> attributeList = Data.GetSignConfig();
  112. Transform tra = ManaReso.Get("Bb_Grid");
  113. for (int i = 0; i < attributeList.Count; i++)
  114. {
  115. Transform tra1 = ManaReso.Get("SignInItem", Folder.UI, false, tra, false);
  116. SignDic.Add(i, new Sign(i + 1, tra1, attributeList[i]));
  117. }
  118. for (int i = 0; i < ManaData.SignIndex + 1; i++)
  119. {
  120. SignDic[i].Mark.SetActive(true);
  121. if (i != ManaData.SignIndex)
  122. {
  123. SignDic[i].Icon.SetActive(true);
  124. }
  125. }
  126. }
  127. public override void RegistReference()
  128. {
  129. }
  130. }