//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Wednesday, September 20, 2017
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
|
namespace vnxbqy.UI
|
{
|
|
public class TrialDungeonSelectBehaviour : ScrollItem
|
{
|
[SerializeField] Button m_SelectButton;
|
[SerializeField] Image m_BackGround;
|
[SerializeField] Image m_SceneBG;
|
[SerializeField] Image m_TitleIcon;
|
[SerializeField] Image m_BossIcon;
|
[SerializeField] Image m_BossFrame;
|
[SerializeField] Text m_DungeonName;
|
[SerializeField] Text m_PlayerLevel;
|
[SerializeField] Text m_PetHorseLevel;
|
[SerializeField] Text m_ChallengeRemind;
|
[SerializeField] SmoothMask m_SmoothMask;
|
|
Dungeon dungeon;
|
TrialDungeonSelectWin m_TrailDungeonSelectWin;
|
|
DungeonModel model { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } }
|
TrialDungeonModel trialDungeonModel { get { return ModelCenter.Instance.GetModel<TrialDungeonModel>(); } }
|
|
public override void Display(object _data)
|
{
|
base.Display(_data);
|
dungeon = (Dungeon)_data;
|
var config = DungeonConfig.Get(model.GetDungeonId(dungeon));
|
if (config == null)
|
{
|
return;
|
}
|
|
if (m_TrailDungeonSelectWin != null)
|
{
|
m_TrailDungeonSelectWin.dungeonSelectEvent -= OnSelected;
|
}
|
m_TrailDungeonSelectWin = WindowCenter.Instance.Get<TrialDungeonSelectWin>();
|
m_TrailDungeonSelectWin.dungeonSelectEvent += OnSelected;
|
|
m_SelectButton.RemoveAllListeners();
|
m_SelectButton.AddListener(Select);
|
DrawDungeonInfo(dungeon);
|
}
|
|
public override void Dispose()
|
{
|
base.Dispose();
|
}
|
|
private void DrawDungeonInfo(Dungeon _dungeon)
|
{
|
var dungeonId = model.GetDungeonId(_dungeon);
|
var config = DungeonConfig.Get(dungeonId);
|
m_DungeonName.text = config.FBName;
|
|
var _npcId = config.BossActorID[0];
|
var bossConfig = NPCConfig.Get(_npcId);
|
|
m_PlayerLevel.text = Language.Get("Z1024", config.LVLimitMin);
|
m_PlayerLevel.color = PlayerDatas.Instance.baseData.LV >= config.LVLimitMin ?
|
UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true);
|
|
var requirePetHorseLevel = trialDungeonModel.GetDungeonRequirePetHorseLevel(_dungeon.lineId);
|
var petHorseLevel = trialDungeonModel.GetPetHorseLevel();
|
m_PetHorseLevel.text = requirePetHorseLevel.ToString();
|
m_PetHorseLevel.color = petHorseLevel >= requirePetHorseLevel ?
|
UIHelper.GetUIColor(TextColType.Green, true) : UIHelper.GetUIColor(TextColType.Red, true);
|
|
DungeonRecord dungeonRecord;
|
model.TryGetRecord(_dungeon.mapId, out dungeonRecord);
|
bool prefloorPass = _dungeon.lineId == 0;
|
if (_dungeon.lineId > 0 && dungeonRecord != null)
|
{
|
var grade = 0;
|
dungeonRecord.lineGrades.TryGetValue(config.LineID - 1, out grade);
|
prefloorPass = grade > 0;
|
}
|
|
if (PlayerDatas.Instance.baseData.LV < config.LVLimitMin
|
|| petHorseLevel < requirePetHorseLevel || !prefloorPass)
|
{
|
m_ChallengeRemind.text = Language.Get("TrialDungeonLock");
|
m_ChallengeRemind.color = UIHelper.GetUIColor(TextColType.Red, true);
|
SetImageGray(true);
|
}
|
else
|
{
|
m_ChallengeRemind.text = Language.Get("TrialDungeonUnLock");
|
m_ChallengeRemind.color = UIHelper.GetUIColor(TextColType.NavyBrown, true);
|
SetImageGray(false);
|
}
|
|
if (GeneralDefine.trailBossHeadIcons.ContainsKey(_npcId))
|
{
|
m_BossIcon.SetSprite(GeneralDefine.trailBossHeadIcons[_npcId]);
|
}
|
|
var selected = m_TrailDungeonSelectWin.currentSelectDungeon == _dungeon;
|
}
|
|
private void Select()
|
{
|
m_TrailDungeonSelectWin.currentSelectDungeon = dungeon;
|
model.selectedTrialDungeon = dungeon;
|
WindowCenter.Instance.Open<TrialDungeonEntranceWin>();
|
}
|
|
private void OnSelected(Dungeon _dungeon)
|
{
|
//m_Selected.SetActive(dungeon == _dungeon);
|
}
|
|
private void SetImageGray(bool _gray)
|
{
|
m_SceneBG.material = _gray ? m_SmoothMask.imageMaterials[1] : m_SmoothMask.imageMaterials[0];
|
m_BossIcon.material = _gray ? m_SmoothMask.imageMaterials[1] : m_SmoothMask.imageMaterials[0];
|
m_TitleIcon.material = _gray ? m_SmoothMask.imageMaterials[1] : m_SmoothMask.imageMaterials[0];
|
}
|
}
|
}
|
|
|
|