123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243 |
- using System;
- using System.Globalization;
- using UnityEngine;
- using UnityEngine.Events;
- public class UserData
- {
- public enum From
- {
- ios,
- }
- public UnityEvent NickChanged = new UnityEvent ();
- public UnityEvent ClanChanged = new UnityEvent();
- public UnityEvent CoinChanged = new UnityEvent();
- public UnityEvent DiamondChanged = new UnityEvent ();
- public int id;
- public string snsId;
- public string email;
- public string deviceId;
- private string _nick = "";
- public int exp;
- public int win;
- public int lose;
- public string from = "ios";
- private int _rank;
- private int _coin;
- private int _diamond;
- public int rankIndex;
- public bool vipNextRound;
- private double _vipExpireDay;
- private bool _isVIP;
- private bool _isFullVIP;
- private IFormatProvider culture = new CultureInfo("zh-cn", true);
- public int[] craftSelectLimit;
- public bool isLogin;
- public UserData ()
- {
- }
- public int GetBadge()
- {
- return GetBadgeByRank(rank);
- }
- public static int GetBadgeByRank(int rank)
- {
- int badge = (int)Mathf.Floor((float)rank/1500f);
- badge += 1;
- if(badge > 30)
- {
- badge = 30;
- }
- return badge;
- }
- public static Sprite GetBadgeIcon(int rank)
- {
- return Resources.Load<Sprite>("Textures/BadgeIcon/badge"+StringUtil.FillZero(GetBadgeByRank(rank), 4));
- }
- public string idStr
- {
- get{
- return "#" + id;
- }
- }
- private int m_ClanId;
- public int clanId
- {
- set{
- m_ClanId = value;
- ClanChanged.Invoke ();
- }
- get{
- return m_ClanId;
- }
- }
- public string nick
- {
- set{
- _nick = NickFormat(value, id);
- NickChanged.Invoke ();
- }
- get{
- return _nick;
- }
- }
- public static string NickFormat(string nick, int userId)
- {
- if (StringUtil.Empty (nick))
- return "#"+userId;
- return nick;
- }
- public static string NickFormat(LitJson.JsonData jsonNick, int userId)
- {
- if (jsonNick != null)
- return NickFormat (WWW.UnEscapeURL(jsonNick.ToString()), userId);
- return NickFormat(null, userId);
- }
- public int rank
- {
- set{
- _rank = value;
- if (id != Session.GetInstance ().myUserData.id)
- return;
- RankNum[] rankNums = GameObject.FindObjectsOfType<RankNum>();
- for(int i=0; i<rankNums.Length; i++)
- {
- rankNums[i].UpdateRank(value);
- }
- }
- get{
- return _rank;
- }
- }
- public int coin
- {
- set{
- _coin = value;
- CoinChanged.Invoke ();
- }
- get{
- return _coin;
- }
- }
- public int diamond
- {
- set{
- _diamond = value;
- DiamondChanged.Invoke ();
- }
- get{
- return _diamond;
- }
- }
- public string vipExpireTime
- {
- set
- {
- DateTime dt = DateTime.ParseExact(value, "yyyy-MM-dd HH:mm:ss", culture);
- TimeSpan ts = dt.Subtract(DateTime.Now);
- _isFullVIP = _isVIP = (ts.TotalSeconds > 0);
- _vipExpireDay = ts.TotalDays;
- // _isFullVIP = (ts.TotalDays > 30);
- if (id != Session.GetInstance ().myUserData.id)
- return;
- CraftSelectionItem[] craftItems = GameObject.FindObjectsOfType<CraftSelectionItem>();
- for(int i=0; i<craftItems.Length; i++)
- {
- craftItems[i].Refresh();
- }
- ShopItem[] shopItems = GameObject.FindObjectsOfType<ShopItem>();
- for(int i=0; i<shopItems.Length; i++)
- {
- shopItems[i].Refresh();
- }
- }
- }
- public void RemoveVIPExpireTime()
- {
- _isVIP = false;
- _vipExpireDay = 0;
- _isFullVIP = false;
- }
- public bool IsVIP()
- {
- return _isVIP || vipNextRound;
- }
- public double GetVipExpireDay()
- {
- return _vipExpireDay;
- }
- public bool IsFullVIP()
- {
- return _isFullVIP;
- }
- public bool CanBuy(BuyItemData data)
- {
- if(data.GetCurrency() == BuyUtil.Currency.Diamond)
- {
- if(data.GetPrice() > diamond)
- {
- BuyDiamondPanel.Show();
- return false;
- }
- }
- else if(data.GetCurrency() == BuyUtil.Currency.Coin)
- {
- if(data.GetPrice() > coin)
- {
- BuyCoinPanel.Show();
- return false;
- }
- }
- return true;
- }
- public override string ToString ()
- {
- return string.Format ("[UserData: nick={0}, rank={1}, id={2}", nick, rank, id);
- }
- }
|