//--------------------------------------------------------  
 | 
//    [Author]:           玩个游戏  
 | 
//    [  Date ]:           Monday, August 14, 2017  
 | 
//--------------------------------------------------------  
 | 
using UnityEngine;  
 | 
using System.Collections;  
 | 
using UnityEngine.UI;  
 | 
  
 | 
  
 | 
public class RedpointBehaviour : MonoBehaviour  
 | 
{  
 | 
    [SerializeField]  
 | 
    int m_RedpointId;  
 | 
    public int redpointId {  
 | 
        get {  
 | 
            return m_RedpointId;  
 | 
        }  
 | 
        set {  
 | 
            m_RedpointId = value;  
 | 
            UpdateRedpoint(value);  
 | 
        }  
 | 
    }  
 | 
  
 | 
    [SerializeField]  
 | 
    Transform m_SimpleRedpoint;  
 | 
    public Transform simpleRedpoint {  
 | 
        get {  
 | 
            return m_SimpleRedpoint;  
 | 
        }  
 | 
    }  
 | 
    [SerializeField]  
 | 
    Transform m_QuantityRedpoint;  
 | 
    public Transform quantityRedpoint {  
 | 
        get {  
 | 
            return m_QuantityRedpoint;  
 | 
        }  
 | 
    }  
 | 
    [SerializeField]  
 | 
    Text m_Quantity;  
 | 
    public Text quantityText {  
 | 
        get {  
 | 
            return m_Quantity;  
 | 
        }  
 | 
    }  
 | 
    [SerializeField]  
 | 
    Transform m_FullRedpoint;  
 | 
  
 | 
    [SerializeField]  
 | 
    Transform m_GetRewardRedpoint;  
 | 
  
 | 
    [SerializeField] Transform m_NewRedpoint;  
 | 
    bool m_Show = false;  
 | 
    public bool show {  
 | 
        get { return m_Show; }  
 | 
        set {  
 | 
            if (m_Show != value)  
 | 
            {  
 | 
                m_Show = value;  
 | 
                this.SetActive(m_Show);  
 | 
            }  
 | 
        }  
 | 
    }  
 | 
  
 | 
    private void Awake()  
 | 
    {  
 | 
        UpdateRedpoint(redpointId);  
 | 
        RedpointCenter.Instance.redpointValueChangeEvent += UpdateRedpoint;  
 | 
    }  
 | 
  
 | 
    private void OnDestroy()  
 | 
    {  
 | 
        RedpointCenter.Instance.redpointValueChangeEvent -= UpdateRedpoint;  
 | 
    }  
 | 
  
 | 
    void UpdateRedpoint(int _id)  
 | 
    {  
 | 
        if (_id != redpointId)  
 | 
        {  
 | 
            return;  
 | 
        }  
 | 
  
 | 
        var state = RedpointCenter.Instance.GetRedpointState(redpointId);  
 | 
        if (m_SimpleRedpoint != null)  
 | 
        {  
 | 
            m_SimpleRedpoint.SetActive(state == RedPointState.Simple);  
 | 
        }  
 | 
  
 | 
        if (m_QuantityRedpoint != null)  
 | 
        {  
 | 
            m_QuantityRedpoint.SetActive(state == RedPointState.Quantity);  
 | 
        }  
 | 
  
 | 
        if (m_Quantity != null)  
 | 
        {  
 | 
            m_Quantity.SetActive(state == RedPointState.Quantity);  
 | 
        }  
 | 
  
 | 
        if (m_FullRedpoint != null)  
 | 
        {  
 | 
            m_FullRedpoint.SetActive(state == RedPointState.Full);  
 | 
        }  
 | 
  
 | 
        if (m_GetRewardRedpoint != null)  
 | 
        {  
 | 
            m_GetRewardRedpoint.SetActive(state == RedPointState.GetReward);  
 | 
        }  
 | 
  
 | 
        if (state == RedPointState.Quantity && m_Quantity != null)  
 | 
        {  
 | 
            var count = RedpointCenter.Instance.GetRedpointCount(redpointId);  
 | 
            m_Quantity.text = count > 9 ? "N" : count >= 1 ? count.ToString() : "";  
 | 
        }  
 | 
  
 | 
        if (m_NewRedpoint != null)  
 | 
        {  
 | 
            m_NewRedpoint.SetActive(state == RedPointState.New);  
 | 
        }  
 | 
    }  
 | 
  
 | 
}  
 | 
  
 | 
  
 | 
  
 | 
  
 |