//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, October 31, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
|
public class PersonalBossBriefInfoBehaviour : FindPreciousBossBriefInfoBehaviour
|
{
|
[SerializeField] Text m_UnlockLevel;
|
[SerializeField] Text m_Text;
|
[SerializeField] Text m_FreeText;
|
|
protected override int selectedBossId {
|
get {
|
return model.selectedBoss;
|
}
|
set {
|
model.selectedBoss = value;
|
}
|
}
|
protected override bool isUnLocked
|
{
|
get { return findPreciousModel.IsBossUnlock(bossId) && model.IsPlayerLevelEnough(bossId); }
|
}
|
|
|
protected override InteractorableState interactorableState {
|
get {
|
var selected = selectedBossId == bossId;
|
var dieOrLocked = !findPreciousModel.IsBossUnlock(bossId) || ! model.IsPlayerLevelEnough(bossId);
|
|
if (!dieOrLocked)
|
{
|
return selected ? InteractorableState.NormalSelected : InteractorableState.NormalUnSelected;
|
}
|
else
|
{
|
return selected ? InteractorableState.DieOrLockedSelected : InteractorableState.DieOrLockedUnSelected;
|
}
|
}
|
set {
|
base.interactorableState = value;
|
}
|
}
|
|
PersonalBossModel model { get { return ModelCenter.Instance.GetModel<PersonalBossModel>(); } }
|
|
public override void Display(object _data)
|
{
|
base.Display(_data);
|
|
var config = PersonalBossConfig.Get(bossId);
|
var npcConfig = NPCConfig.Get(bossId);
|
DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV, npcConfig.Realm);
|
UpdateBossPortrait(interactorableState);
|
UpdateBossRebornCoolDown(isUnLocked);
|
OnSelected(bossId);
|
ShowFirstFree(bossId);
|
|
model.bossSelectedEvent -= OnSelected;
|
model.bossSelectedEvent += OnSelected;
|
}
|
|
protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
|
{
|
m_Text.SetActive(true);
|
m_UnLockRealm.SetActive(true);
|
base.DrawBossBaseInfo(icon, name, level, realm);
|
|
if (!isUnLocked)
|
{
|
m_UnlockLevel.text = string.Empty;
|
if(findPreciousModel.IsBossUnlock(bossId))
|
{
|
m_Text.SetActive(false);
|
m_UnLockRealm.SetActive(false);
|
m_UnlockLevel.text = Language.Get("DemonJarBossUnlockCondition2", level);
|
}
|
}
|
|
}
|
|
|
public override void Dispose()
|
{
|
base.Dispose();
|
model.bossSelectedEvent -= OnSelected;
|
}
|
|
private void OnSelected(int _bossId)
|
{
|
UpdateBossNameLevelFont(interactorableState);
|
}
|
|
private void ShowFirstFree(int _bossId)
|
{
|
m_FreeText.SetActive(model.IsFreeTime(_bossId) ? true:false);
|
}
|
}
|
|
}
|
|
|
|