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); 
 | 
    } 
 | 
} 
 |