//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, December 21, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
|
public class DemonJarBriefInfoBehaviour : FindPreciousBossBriefInfoBehaviour
|
{
|
[SerializeField] ItemBehaviour m_ItemBehaviour;
|
[SerializeField] Text m_Participant;
|
[SerializeField] Transform m_Attention;
|
[SerializeField] RectTransform m_ContainerRealmUnlock;
|
[SerializeField] RectTransform m_ContainerLevelUnlock;
|
[SerializeField] Text m_UnlockLevel;
|
|
DemonJarModel model { get { return ModelCenter.Instance.GetModel<DemonJarModel>(); } }
|
|
protected override int selectedBossId {
|
get { return model.selectedBoss; }
|
set { model.selectedBoss = value; }
|
}
|
|
protected override InteractorableState interactorableState {
|
get {
|
var selected = selectedBossId == bossId;
|
var dieOrLocked = !model.IsBossUnlock(bossId) || !findPreciousModel.IsBossAlive(bossId);
|
|
if (!dieOrLocked)
|
{
|
return selected ? InteractorableState.NormalSelected : InteractorableState.NormalUnSelected;
|
}
|
else
|
{
|
return selected ? InteractorableState.DieOrLockedSelected : InteractorableState.DieOrLockedUnSelected;
|
}
|
}
|
set {
|
base.interactorableState = value;
|
}
|
}
|
|
protected override bool isRebornRightNow {
|
get {
|
return model.IsBossUnlock(bossId) && base.isRebornRightNow;
|
}
|
}
|
|
protected override bool isUnLocked {
|
get { return model.IsBossUnlock(bossId); }
|
}
|
|
public override void Display(object _data)
|
{
|
base.Display(_data);
|
|
var config = DemonJarConfig.Get(bossId);
|
var npcConfig = NPCConfig.Get(bossId);
|
|
m_Attention.SetActive(findPreciousModel.IsBossSubscribed(bossId));
|
m_ItemBehaviour.SetActive(config.SpecialItemMark > 0);
|
if (config.SpecialItemMark > 0)
|
{
|
m_ItemBehaviour.showCount = false;
|
m_ItemBehaviour.SetItem(config.SpecialItemMark, 1);
|
}
|
|
m_Participant.SetActive(false);//isUnLocked && findPreciousModel.IsBossAlive(bossId));
|
|
DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV, npcConfig.Realm);
|
UpdateBossRebornCoolDown(isUnLocked);
|
UpdateBossPortrait(interactorableState);
|
//UpdateBossParticipant(bossId);
|
OnSelected(bossId);
|
|
model.bossSelectedEvent -= OnSelected;
|
//.participantChangeEvent -= UpdateBossParticipant;
|
model.bossSelectedEvent += OnSelected;
|
//model.participantChangeEvent += UpdateBossParticipant;
|
}
|
|
public override void Dispose()
|
{
|
base.Dispose();
|
model.bossSelectedEvent -= OnSelected;
|
//model.participantChangeEvent -= UpdateBossParticipant;
|
}
|
|
private void OnSelected(int _bossId)
|
{
|
UpdateBossNameLevelFont(interactorableState);
|
}
|
|
protected override void OnSubscribe(int _bossId)
|
{
|
base.OnSubscribe(_bossId);
|
if (bossId != _bossId)
|
{
|
return;
|
}
|
|
m_Attention.SetActive(findPreciousModel.IsBossSubscribed(bossId));
|
}
|
|
protected override void OnBossInfoUpdate(int _bossId)
|
{
|
base.OnBossInfoUpdate(_bossId);
|
//m_Participant.SetActive(isUnLocked && findPreciousModel.IsBossAlive(bossId));
|
}
|
|
//private void UpdateBossParticipant(int _bossId)
|
//{
|
// if (bossId != _bossId)
|
// {
|
// return;
|
// }
|
|
// DemonJarBossData bossData;
|
// model.TryGetBossData(bossId, out bossData);
|
// m_Participant.text = Language.Get("FindPrecious_8", bossData.participant);
|
//}
|
|
protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
|
{
|
m_Portrait.SetSprite(icon);
|
m_Portrait.SetNativeSize();
|
this.m_BossName.text = name;
|
m_BossLevel.text = Language.Get("Z1024", level);
|
|
m_RealmContainer.SetActive(isUnLocked);
|
m_UnLockCondition.SetActive(!isUnLocked);
|
if (!isUnLocked)
|
{
|
var realmOk = model.IsPlayerRealmEnough(bossId);
|
m_ContainerRealmUnlock.SetActive(!realmOk);
|
m_ContainerLevelUnlock.SetActive(realmOk);
|
|
if (!realmOk)
|
{
|
var unLockRealm = findPreciousModel.GetBossUnLockRealm(bossId);
|
var config = RealmConfig.Get(unLockRealm);
|
m_UnLockRealm.SetSprite(config.Img);
|
}
|
else
|
{
|
m_UnlockLevel.text = Language.Get("DemonJarBossUnlockCondition2", level);
|
}
|
}
|
else
|
{
|
if (m_Realm != null && m_RealmContainer != null)
|
{
|
if (realm > 0 && RealmConfig.Has(realm))
|
{
|
m_RealmContainer.SetActive(true);
|
var realmConfig = RealmConfig.Get(realm);
|
if (realmConfig != null)
|
{
|
m_Realm.SetSprite(realmConfig.Img);
|
}
|
}
|
else
|
{
|
m_RealmContainer.SetActive(false);
|
}
|
}
|
}
|
}
|
|
}
|
|
}
|
|
|
|