//-------------------------------------------------------- // [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(); } } 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); } } } } } }