//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, October 25, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
namespace vnxbqy.UI
|
{
|
|
public class TeammateBriefInfoBehaviour : MonoBehaviour
|
{
|
[SerializeField] ImageEx m_Icon;
|
[SerializeField] Image m_LevelBG;
|
[SerializeField] TextEx m_Level;
|
[SerializeField] Transform m_Matching;
|
|
TeamModel model { get { return ModelCenter.Instance.GetModel<TeamModel>(); } }
|
|
Teammate teammate = null;
|
public void Display(Teammate _mate)
|
{
|
teammate = _mate;
|
model.matchingStateChangeEvent -= OnMatchMember;
|
model.teammateLevelUpEvent -= OnTeammateLevelUp;
|
model.teammateOnOffLineEvent -= OnTeammateOnOffLine;
|
|
if (teammate != null)
|
{
|
m_Icon.SetActive(true);
|
m_LevelBG.SetActive(true);
|
m_Level.SetActive(true);
|
m_Matching.SetActive(false);
|
|
m_Icon.SetSprite(GeneralDefine.GetOtherJobHeadPortrait(teammate.job, 0));
|
m_Icon.gray = !teammate.online;
|
m_LevelBG.SetSprite("UnNirvana");
|
m_Level.text = teammate.level.ToString();
|
m_Level.colorType = teammate.id == (int)PlayerDatas.Instance.baseData.PlayerID ? TextColType.Green : TextColType.White;
|
|
model.teammateLevelUpEvent += OnTeammateLevelUp;
|
model.teammateOnOffLineEvent += OnTeammateOnOffLine;
|
}
|
else
|
{
|
m_LevelBG.SetActive(false);
|
m_Level.SetActive(false);
|
m_Icon.SetActive(false);
|
|
m_Matching.SetActive(model.isMatching);
|
model.matchingStateChangeEvent += OnMatchMember;
|
}
|
}
|
|
public void Dispose()
|
{
|
teammate = null;
|
model.matchingStateChangeEvent -= OnMatchMember;
|
model.teammateLevelUpEvent -= OnTeammateLevelUp;
|
model.teammateOnOffLineEvent -= OnTeammateOnOffLine;
|
}
|
|
private void OnTeammateLevelUp(int _playerId)
|
{
|
if (teammate == null || teammate.id != _playerId)
|
{
|
return;
|
}
|
|
m_LevelBG.SetSprite("UnNirvana");
|
m_Level.text = teammate.level.ToString();
|
m_Level.colorType = teammate.id == (int)PlayerDatas.Instance.baseData.PlayerID ? TextColType.Green : TextColType.White;
|
}
|
|
private void OnTeammateOnOffLine(int _playerId)
|
{
|
if (teammate == null || teammate.id != _playerId)
|
{
|
return;
|
}
|
|
m_Icon.gray = !teammate.online;
|
}
|
|
private void OnMatchMember()
|
{
|
m_Matching.SetActive(model.isMatching);
|
m_LevelBG.SetActive(false);
|
m_Level.SetActive(false);
|
m_Icon.SetActive(false);
|
}
|
|
}
|
|
}
|
|
|
|