//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Tuesday, October 31, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
using System;
|
|
namespace vnxbqy.UI
|
{
|
|
public class ElderGodBreifInfoBehaviour : FindPreciousBossBriefInfoBehaviour
|
{
|
[SerializeField] Image m_Attention;
|
|
protected override int selectedBossId {
|
get {
|
return model.selectedBoss;
|
}
|
set {
|
model.selectedBoss = value;
|
}
|
}
|
|
protected override InteractorableState interactorableState {
|
get {
|
var selected = selectedBossId == bossId;
|
var config = ElderGodAreaConfig.Get(bossId);
|
var dieOrLocked = config.MonsterType == 2
|
&& (!findPreciousModel.IsBossUnlock(bossId) || !findPreciousModel.IsBossAlive(bossId));
|
|
if (!dieOrLocked)
|
{
|
return selected ? InteractorableState.NormalSelected : InteractorableState.NormalUnSelected;
|
}
|
else
|
{
|
return selected ? InteractorableState.DieOrLockedSelected : InteractorableState.DieOrLockedUnSelected;
|
}
|
}
|
|
set {
|
base.interactorableState = value;
|
}
|
}
|
|
ElderGodAreaModel model { get { return ModelCenter.Instance.GetModel<ElderGodAreaModel>(); } }
|
|
public override void Display(object _data)
|
{
|
base.Display(_data);
|
|
m_Attention.SetActive(findPreciousModel.IsBossSubscribed(bossId));
|
|
var config = ElderGodAreaConfig.Get(bossId);
|
var npcConfig = NPCConfig.Get(bossId);
|
DrawBossBaseInfo(config.PortraitID, npcConfig.charName, npcConfig.NPCLV, npcConfig.Realm);
|
UpdateBossPortrait(interactorableState);
|
UpdateBossRebornCoolDown(isUnLocked);
|
OnSelected(bossId);
|
|
model.bossSelectedEvent -= OnSelected;
|
model.bossSelectedEvent += OnSelected;
|
}
|
|
public override void Dispose()
|
{
|
base.Dispose();
|
model.bossSelectedEvent -= OnSelected;
|
}
|
|
private void OnSelected(int _bossId)
|
{
|
UpdateBossNameLevelFont(interactorableState);
|
}
|
|
protected override void DrawBossBaseInfo(string icon, string name, int level, int realm)
|
{
|
var config = ElderGodAreaConfig.Get(bossId);
|
|
switch (config.MonsterType)
|
{
|
case 1:
|
m_Portrait.SetSprite(icon);
|
m_Portrait.SetNativeSize();
|
m_BossName.text = Language.Get("ElderGodMonster");
|
m_BossLevel.text = string.Empty;
|
m_RealmContainer.SetActive(false);
|
m_UnLockCondition.SetActive(false);
|
break;
|
case 2:
|
base.DrawBossBaseInfo(icon, name, level, realm);
|
break;
|
default:
|
break;
|
}
|
}
|
|
protected override void OnSubscribe(int _bossId)
|
{
|
base.OnSubscribe(_bossId);
|
if (bossId != _bossId)
|
{
|
return;
|
}
|
|
m_Attention.SetActive(findPreciousModel.IsBossSubscribed(bossId));
|
}
|
|
}
|
|
}
|
|
|
|