//--------------------------------------------------------
|
// [Author]: 第二世界
|
// [ Date ]: Thursday, March 08, 2018
|
//--------------------------------------------------------
|
using UnityEngine;
|
using System.Collections;
|
using UnityEngine.UI;
|
|
|
namespace vnxbqy.UI
|
{
|
|
public class DemonTreasureCollectPanel : MonoBehaviour
|
{
|
|
[SerializeField] Text m_LevelLimit;
|
[SerializeField] Button m_Challenge;
|
[SerializeField] Text m_RecommendPower;
|
[SerializeField] Image m_GotSign;
|
|
[SerializeField] DemonTreasureCollectConditionBehaviour[] m_PowerConditions;
|
|
int treasureId = 0;
|
TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } }
|
|
public void Display(int _treasureId)
|
{
|
treasureId = _treasureId;
|
|
var config = DemonRecommondPropertyConfig.Get(_treasureId);
|
|
var myPower = PlayerDatas.Instance.baseData.FightPoint;
|
m_RecommendPower.text = StringUtility.Contact(myPower, "/", config.RecommendPower);
|
m_RecommendPower.color = UIHelper.GetUIColor(myPower >= (ulong)config.RecommendPower ? TextColType.Green : TextColType.Red, true);
|
|
var conditions = config.RecommendWay;
|
|
for (int i = 0; i < m_PowerConditions.Length; i++)
|
{
|
var behaviour = m_PowerConditions[i];
|
if (i < conditions.Length)
|
{
|
behaviour.SetActive(true);
|
behaviour.Display(conditions[i]);
|
}
|
else
|
{
|
behaviour.SetActive(false);
|
}
|
}
|
|
m_Challenge.RemoveAllListeners();
|
m_Challenge.AddListener(Challenge);
|
|
Treasure treasure;
|
if (treasureModel.TryGetTreasure(treasureId, out treasure))
|
{
|
m_Challenge.SetActive(treasure.state == TreasureState.Collecting);
|
m_LevelLimit.SetActive(treasure.state != TreasureState.Collected);
|
m_GotSign.SetActive(treasure.state == TreasureState.Collected);
|
|
var treasureConfig = TreasureConfig.Get(treasure.id);
|
|
if (treasure.state != TreasureState.Collected)
|
{
|
if (treasureConfig.PreTreasure == 0)
|
{
|
var levelLimitHint = UIHelper.AppendColor(
|
PlayerDatas.Instance.baseData.LV >= treasureConfig.ChallengeLevel ? TextColType.Green : TextColType.Red, treasureConfig.ChallengeLevel.ToString(), true);
|
m_LevelLimit.text = Language.Get("TreasureLevelLimit", levelLimitHint);
|
|
}
|
else
|
{
|
var levelLimitHint = UIHelper.AppendColor(
|
PlayerDatas.Instance.baseData.LV >= treasureConfig.ChallengeLevel ? TextColType.Green : TextColType.Red, treasureConfig.ChallengeLevel.ToString(), true);
|
|
var preTreasureConfig = TreasureConfig.Get(treasureConfig.PreTreasure);
|
var treasureLimitHint = UIHelper.AppendColor(
|
treasure.state == TreasureState.Collecting ? TextColType.Green : TextColType.Red, preTreasureConfig.Name, true);
|
|
m_LevelLimit.text = Language.Get("TreasureLvLimit", levelLimitHint, treasureLimitHint);
|
}
|
}
|
}
|
else
|
{
|
m_Challenge.SetActive(false);
|
}
|
}
|
|
bool EquipConditionReached(int _condition)
|
{
|
var itemConfig = ItemConfig.Get(_condition);
|
var place = itemConfig.EquipPlace;
|
|
var model = ModelCenter.Instance.GetModel<PackModel>();
|
var itemModel = model.GetItemByIndex(PackType.Equip, place);
|
|
if (itemModel == null)
|
{
|
return false;
|
}
|
|
if (itemModel.config.StarLevel < itemConfig.StarLevel
|
|| itemModel.config.ItemColor < itemConfig.ItemColor
|
|| itemModel.config.LV < itemConfig.LV)
|
{
|
return false;
|
}
|
|
return true;
|
}
|
|
private void Challenge()
|
{
|
var treasureConfig = TreasureConfig.Get(treasureId);
|
if (PlayerDatas.Instance.baseData.LV < treasureConfig.ChallengeLevel)
|
{
|
ServerTipDetails.DisplayNormalTip(Language.Get("TrialDungeonLevelLimit"));
|
}
|
else
|
{
|
var config = DemonRecommondPropertyConfig.Get(treasureId);
|
var myPower = PlayerDatas.Instance.baseData.FightPoint;
|
|
if (myPower < (ulong)config.RecommendPower)
|
{
|
ConfirmCancel.ShowPopConfirm(
|
Language.Get("Mail101"),
|
Language.Get("TreasureDemonPowerLack"),
|
(bool _ok) =>
|
{
|
if (_ok)
|
{
|
var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
dungeonModel.SingleChallenge(treasureConfig.MapId, treasureConfig.LineId);
|
}
|
}
|
);
|
}
|
else
|
{
|
var dungeonModel = ModelCenter.Instance.GetModel<DungeonModel>();
|
dungeonModel.SingleChallenge(treasureConfig.MapId, treasureConfig.LineId);
|
}
|
}
|
|
}
|
|
}
|
|
}
|