UserData.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230
  1. using System;
  2. using System.Globalization;
  3. using UnityEngine;
  4. using UnityEngine.Events;
  5. public class UserData
  6. {
  7. public enum From
  8. {
  9. ios,
  10. }
  11. public UnityEvent NickChanged = new UnityEvent ();
  12. public UnityEvent ClanChanged = new UnityEvent();
  13. public UnityEvent CoinChanged = new UnityEvent();
  14. public UnityEvent DiamondChanged = new UnityEvent ();
  15. public UnityEvent VIPChanged = new UnityEvent();
  16. public int id;
  17. public string snsId;
  18. public string email;
  19. public string deviceId;
  20. private string _nick = "";
  21. public int exp;
  22. public int win;
  23. public int lose;
  24. public string from = "ios";
  25. private int _rank;
  26. private int _coin;
  27. private int _diamond;
  28. public int rankIndex;
  29. public bool vipNextRound;
  30. private double _vipExpireDay;
  31. private bool _isVIP;
  32. private bool _isFullVIP;
  33. private IFormatProvider culture = new CultureInfo("zh-cn", true);
  34. public int[] craftSelectLimit;
  35. public bool isLogin;
  36. public UserData ()
  37. {
  38. }
  39. public int GetBadge()
  40. {
  41. return GetBadgeByRank(rank);
  42. }
  43. public static int GetBadgeByRank(int rank)
  44. {
  45. int badge = (int)Mathf.Floor((float)rank/1500f);
  46. badge += 1;
  47. if(badge > 30)
  48. {
  49. badge = 30;
  50. }
  51. return badge;
  52. }
  53. public static Sprite GetBadgeIcon(int rank)
  54. {
  55. return Resources.Load<Sprite>("Textures/BadgeIcon/badge"+StringUtil.FillZero(GetBadgeByRank(rank), 4));
  56. }
  57. public string idStr
  58. {
  59. get{
  60. return "#" + id;
  61. }
  62. }
  63. private int m_ClanId;
  64. public int clanId
  65. {
  66. set{
  67. m_ClanId = value;
  68. ClanChanged.Invoke ();
  69. }
  70. get{
  71. return m_ClanId;
  72. }
  73. }
  74. public string nick
  75. {
  76. set{
  77. _nick = NickFormat(value, id);
  78. NickChanged.Invoke ();
  79. }
  80. get{
  81. return _nick;
  82. }
  83. }
  84. public static string NickFormat(string nick, int userId)
  85. {
  86. if (StringUtil.Empty (nick))
  87. return "#"+userId;
  88. return nick;
  89. }
  90. public static string NickFormat(LitJson.JsonData jsonNick, int userId)
  91. {
  92. if (jsonNick != null)
  93. return NickFormat (WWW.UnEscapeURL(jsonNick.ToString()), userId);
  94. return NickFormat(null, userId);
  95. }
  96. public int rank
  97. {
  98. set{
  99. _rank = value;
  100. if (id != Session.GetInstance ().myUserData.id)
  101. return;
  102. RankNum[] rankNums = GameObject.FindObjectsOfType<RankNum>();
  103. for(int i=0; i<rankNums.Length; i++)
  104. {
  105. rankNums[i].UpdateRank(value);
  106. }
  107. }
  108. get{
  109. return _rank;
  110. }
  111. }
  112. public int coin
  113. {
  114. set{
  115. _coin = value;
  116. CoinChanged.Invoke ();
  117. }
  118. get{
  119. return _coin;
  120. }
  121. }
  122. public int diamond
  123. {
  124. set{
  125. _diamond = value;
  126. DiamondChanged.Invoke ();
  127. }
  128. get{
  129. return _diamond;
  130. }
  131. }
  132. public string vipExpireTime
  133. {
  134. set
  135. {
  136. DateTime dt = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", culture);
  137. TimeSpan ts = dt.Subtract(DateTime.Now);
  138. _isFullVIP = _isVIP = (ts.TotalSeconds > 0);
  139. _vipExpireDay = ts.TotalDays;
  140. // _isFullVIP = (ts.TotalDays > 30);
  141. VIPChanged.Invoke ();
  142. }
  143. }
  144. public void RemoveVIPExpireTime()
  145. {
  146. _isVIP = false;
  147. _vipExpireDay = 0;
  148. _isFullVIP = false;
  149. }
  150. public bool IsVIP()
  151. {
  152. return _isVIP || vipNextRound;
  153. }
  154. public double GetVipExpireDay()
  155. {
  156. return _vipExpireDay;
  157. }
  158. public bool IsFullVIP()
  159. {
  160. return _isFullVIP;
  161. }
  162. public bool CanBuy(BuyItemData data)
  163. {
  164. if(data.GetCurrency() == BuyUtil.Currency.Diamond)
  165. {
  166. if(data.GetPrice() > diamond)
  167. {
  168. BuyDiamondPanel.Show();
  169. return false;
  170. }
  171. }
  172. else if(data.GetCurrency() == BuyUtil.Currency.Coin)
  173. {
  174. if(data.GetPrice() > coin)
  175. {
  176. BuyCoinPanel.Show();
  177. return false;
  178. }
  179. }
  180. return true;
  181. }
  182. public override string ToString ()
  183. {
  184. return string.Format ("[UserData: nick={0}, rank={1}, id={2}", nick, rank, id);
  185. }
  186. }