123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- using UnityEngine;
- using UnityEngine.UI;
- using System.Collections;
- public class InviteBarItem : ItemRenderer
- {
- public InviteBar inviteBar;
- public Text nickTxt;
- public Text stateTxt;
- public Text btnLabel;
- public Image btnImage;
- public Button btn;
- void Awake()
- {
- btnLabel.text = Language.GetStr ("Invite", "invite");
- }
- public override object data {
- get {
- return base.data;
- }
- set {
- InviteData inviteData = null;
-
- if(base.data != null)
- {
- inviteData = base.data as InviteData;
- inviteData.ActionChanged.RemoveListener (OnActionChanged);
- inviteData.StateChanged.RemoveListener (OnStateChanged);
- }
- base.data = value;
- if(value != null)
- {
- inviteData = value as InviteData;
- inviteData.ActionChanged.AddListener (OnActionChanged);
- inviteData.StateChanged.AddListener (OnStateChanged);
- }
- OnStateChanged ();
- OnActionChanged ();
- }
- }
- void FixedUpdate()
- {
- if (data == null)
- return;
- InviteData inviteData = data as InviteData;
- if(inviteData.action == InviteData.Action.Waiting)
- {
- float cd = InviteData.INVITE_HOLD_ON - (GameTime.time - inviteData.lastActionTime);
- cd = Mathf.Max (0, cd);
- if (cd == 0)
- inviteData.action = InviteData.Action.Invite;
- else
- btnLabel.text = Language.GetStr ("Invite", "action" + inviteData.action.GetHashCode ()).Replace("%SEC%", Mathf.CeilToInt (cd).ToString());
- }
- else if(inviteData.action == InviteData.Action.Refuse)
- {
- float cd = InviteData.INVITE_REFUSE_HOLD_ON - (GameTime.time - inviteData.lastActionTime);
- cd = Mathf.Max (0, cd);
- if (cd == 0)
- inviteData.action = InviteData.Action.Invite;
- else
- btnLabel.text = Language.GetStr ("Invite", "action" + inviteData.action.GetHashCode ()).Replace("%SEC%", Mathf.CeilToInt (cd).ToString());
- }
- }
- public void OnClick()
- {
- if(data != null)
- {
- InviteData inviteData = data as InviteData;
- if (inviteData.action == InviteData.Action.Invite) {
- inviteData.action = InviteData.Action.Waiting;
- inviteBar.Invite (inviteData.id);
- }
- }
- }
- private void OnActionChanged()
- {
- if(data != null)
- {
- InviteData inviteData = data as InviteData;
- btnLabel.text = Language.GetStr ("Invite", "action"+inviteData.action.GetHashCode());
- switch(inviteData.action)
- {
- case InviteData.Action.Invite:
- btnImage.enabled = true;
- break;
- default:
- btnImage.enabled = false;
- break;
- }
- }
- }
- private void OnStateChanged()
- {
- if (data != null) {
- InviteData inviteData = data as InviteData;
- int stateCode = inviteData.state.GetHashCode ();
- stateTxt.text = Language.GetStr ("Invite", "state" + stateCode);
- nickTxt.text = Language.GetStr("Invite", "nameState" + stateCode).Replace("%NICK%", UserCache.GetNick (inviteData.id));
- if(inviteData.id != Session.myUserId)
- btn.gameObject.SetActive (inviteData.state == InviteData.State.Online);
- else
- btn.gameObject.SetActive (false);
- } else {
- stateTxt.text = "";
- }
- }
- }
|