using UnityEngine; public class BoneFieldChallengeButton : MonoBehaviour { [SerializeField] ButtonEx btnChallenge; [SerializeField] TextEx txtChallengeLv; [SerializeField] TextEx txtChallengeYes; [SerializeField] TextEx txtChallengeNo; [SerializeField] ImageEx imgChallengeLVYes; [SerializeField] ImageEx imgChallengeLVNo; [SerializeField] ImageEx imgChallengeIcon; [SerializeField] ImageEx imgChallengeRed; bool isLvOk; int lvLimitMin; bool isHasNextLineID; public void Awake() { btnChallenge.SetListener(OnClickChallenge); } public void Display(int lvLimitMin, bool isHasNextLineID, long bossFightPower) { this.isHasNextLineID = isHasNextLineID; this.lvLimitMin = lvLimitMin; isLvOk = PlayerDatas.Instance.baseData.LV >= lvLimitMin; long myFightPower = PlayerDatas.Instance.baseData.FightPower; imgChallengeRed.SetActive(isLvOk && isHasNextLineID && myFightPower >= bossFightPower); txtChallengeLv.SetActive(!isLvOk); txtChallengeLv.text = Language.Get("BoneField07", lvLimitMin); txtChallengeYes.SetActive(isLvOk && isHasNextLineID); txtChallengeNo.SetActive(!isLvOk || !isHasNextLineID); imgChallengeLVYes.SetActive(isLvOk && isHasNextLineID); imgChallengeLVNo.SetActive(!isLvOk || !isHasNextLineID); imgChallengeIcon.SetActive(isLvOk && isHasNextLineID); } private void OnClickChallenge() { if (!isLvOk) { // %s0级可挑战 SysNotifyMgr.Instance.ShowTip("BoneField01", lvLimitMin); return; } if (!isHasNextLineID) { // 已到达最高层 SysNotifyMgr.Instance.ShowTip("BoneField02", lvLimitMin); return; } if (!DungeonManager.Instance.TryGetFBInfoByMapID(BoneFieldManager.Instance.DataMapID, out var fbInfo)) return; int nowPassLineID = BoneFieldManager.Instance.GetNowPassLineID(fbInfo); BoneFieldManager.Instance.SendTurnFight(BoneFieldManager.Instance.DataMapID, nowPassLineID); UIManager.Instance.CloseWindow(); } }