using System;
|
using System.Collections;
|
using System.Collections.Generic;
|
using TableConfig;
|
using UnityEngine;
|
using UnityEngine.UI;
|
|
namespace Snxxz.UI
|
{
|
public class TreasureDemonBehaviour : MonoBehaviour
|
{
|
[SerializeField] Text m_TreasureDescription;
|
[SerializeField] RectTransform m_ContainerFightPower;
|
[SerializeField] Text m_FightPower;
|
[SerializeField] Text m_RecommondPower;
|
[SerializeField] RectTransform m_ContainerLimit;
|
[SerializeField] Text m_Limit;
|
[SerializeField] RectTransform m_ContainerSkill;
|
[SerializeField] Image m_SkillIcon;
|
[SerializeField] Text m_SkillName;
|
[SerializeField] Text m_SkillEffect;
|
[SerializeField] Text m_SkillDescrition;
|
[SerializeField] Button m_GetBtn;
|
|
[SerializeField] PositionTween m_DescriptionTween;
|
[SerializeField] PositionTween m_SkillTween;
|
|
TreasureModel m_Model;
|
TreasureModel model
|
{
|
get
|
{
|
return m_Model ?? (m_Model = ModelCenter.Instance.GetModel<TreasureModel>());
|
}
|
}
|
|
Treasure m_Treasure;
|
|
private void Awake()
|
{
|
m_GetBtn.onClick.AddListener(OnTreasureGet);
|
}
|
|
private void OnEnable()
|
{
|
model.treasureStateChangeEvent += treasureStateChangeEvent;
|
}
|
|
private void treasureStateChangeEvent(int _id)
|
{
|
if (_id == m_Treasure.id)
|
{
|
m_Limit.gameObject.SetActive(m_Treasure.state != TreasureState.Collected);
|
m_GetBtn.gameObject.SetActive(m_Treasure.state == TreasureState.Collecting);
|
}
|
}
|
|
private void OnDisable()
|
{
|
model.treasureStateChangeEvent -= treasureStateChangeEvent;
|
}
|
|
public void Display(int _id, bool _tween = false)
|
{
|
model.TryGetTreasure(_id, out m_Treasure);
|
if (m_Treasure == null)
|
{
|
return;
|
}
|
|
if (_tween)
|
{
|
m_DescriptionTween.SetStartState();
|
m_SkillTween.SetStartState();
|
m_DescriptionTween.Play();
|
m_SkillTween.Play();
|
}
|
else
|
{
|
m_DescriptionTween.SetEndState();
|
m_SkillTween.SetEndState();
|
}
|
|
var config = Config.Instance.Get<TreasureConfig>(_id);
|
m_TreasureDescription.text = config.Story;
|
var demonRecommondCfg = Config.Instance.Get<DemonRecommondPropertyConfig>(_id);
|
var myPower = PlayerDatas.Instance.baseData.FightPoint;
|
m_RecommondPower.text = Language.Get("TreasureRecommendAttr", StringUtility.Contact(myPower, "/", demonRecommondCfg.RecommendPower));
|
m_RecommondPower.color = UIHelper.GetUIColor(myPower >= demonRecommondCfg.RecommendPower ? TextColType.Green : TextColType.Red, true);
|
m_ContainerLimit.gameObject.SetActive(m_Treasure.state == TreasureState.Locked);
|
m_GetBtn.gameObject.SetActive(m_Treasure.state == TreasureState.Collecting);
|
m_RecommondPower.gameObject.SetActive(m_Treasure.state != TreasureState.Collected);
|
m_ContainerFightPower.gameObject.SetActive(m_Treasure.state == TreasureState.Collected);
|
|
if (m_Treasure.state == TreasureState.Locked)
|
{
|
if (config.PreTreasure == 0)
|
{
|
var levelLimitHint = UIHelper.GetTextColorByItemColor(
|
PlayerDatas.Instance.baseData.LV >= config.ChallengeLevel ? TextColType.Green : TextColType.Red, config.ChallengeLevel.ToString(), true);
|
m_Limit.text = Language.Get("TreasureLevelLimit", levelLimitHint);
|
|
}
|
else
|
{
|
var levelLimitHint = UIHelper.GetTextColorByItemColor(
|
PlayerDatas.Instance.baseData.LV >= config.ChallengeLevel ? TextColType.Green : TextColType.Red, config.ChallengeLevel.ToString(), true);
|
|
var preTreasureConfig = Config.Instance.Get<TreasureConfig>(config.PreTreasure);
|
var treasureLimitHint = UIHelper.GetTextColorByItemColor(
|
m_Treasure.state == TreasureState.Collecting ? TextColType.Green : TextColType.Red, preTreasureConfig.Name, true);
|
|
m_Limit.text = Language.Get("TreasureLvLimit", levelLimitHint, treasureLimitHint);
|
}
|
}
|
|
var skillConfig = Config.Instance.Get<SkillConfig>(m_Treasure.unLockSkill);
|
m_ContainerSkill.gameObject.SetActive(skillConfig != null);
|
if (skillConfig != null)
|
{
|
m_SkillIcon.SetSprite(skillConfig.IconName);
|
m_SkillName.text = skillConfig.SkillName;
|
m_SkillDescrition.text = skillConfig.Description;
|
m_SkillEffect.text = skillConfig.HurtType == 1 ? "PVP" : skillConfig.HurtType == 2 ? "PVE" : string.Empty;
|
m_FightPower.text = skillConfig.FightPower.ToString();
|
}
|
else
|
{
|
m_FightPower.text = string.Empty;
|
}
|
|
if (m_Treasure.id == 201 && m_Treasure.state == TreasureState.Collecting
|
&& !NewBieCenter.Instance.completeGuidesBuf.Contains(88))
|
{
|
NewBieCenter.Instance.StartNewBieGuide(88);
|
}
|
}
|
|
private void OnTreasureGet()
|
{
|
var _cfg = Config.Instance.Get<TreasureConfig>(model.selectedTreasure);
|
if (_cfg != null)
|
{
|
model.collectingDemon = model.selectedTreasure;
|
ModelCenter.Instance.GetModel<DungeonModel>().SingleChallenge(TreasureModel.TREASURE_DATAMAPID, _cfg.LineId);
|
}
|
}
|
}
|
}
|