using System.Collections; 
 | 
using System.Collections.Generic; 
 | 
using UnityEngine; 
 | 
using UnityEngine.UI; 
 | 
  
 | 
  
 | 
public class AutoFightWin : UIBase 
 | 
{ 
 | 
    [SerializeField] Button autoStartBtn; 
 | 
    [SerializeField] GameObject usingAutoObj; 
 | 
    [SerializeField] Button autoStopBtn; 
 | 
    [SerializeField] Button autoSaveBtn; 
 | 
  
 | 
    [SerializeField] Button changeCostBtn; 
 | 
    [SerializeField] Text costText; 
 | 
    [SerializeField] Image costArrow; 
 | 
    [SerializeField] Text costTip; 
 | 
    [SerializeField] ScrollerController costScroll; 
 | 
  
 | 
    [SerializeField] Button changeSpeedBtn; 
 | 
    [SerializeField] Text speedText; 
 | 
    [SerializeField] Image speedArrow; 
 | 
    [SerializeField] ScrollerController speedScroll; 
 | 
  
 | 
    [SerializeField] Toggle betterEquipToggle; 
 | 
  
 | 
  
 | 
    bool isOpenCostScroll = false; 
 | 
    bool isOpenSpeedScroll = false; 
 | 
    protected override void InitComponent() 
 | 
    { 
 | 
        autoStartBtn.AddListener(OnClickAutoStart); 
 | 
        autoStopBtn.AddListener(OnClickAutoStop); 
 | 
        autoSaveBtn.AddListener(OnClickAutoStart); 
 | 
  
 | 
        changeCostBtn.AddListener(() => 
 | 
        { 
 | 
            isOpenCostScroll = !isOpenCostScroll; 
 | 
            costScroll.SetActive(isOpenCostScroll); 
 | 
            costArrow.transform.localRotation = Quaternion.Euler(0, 0, isOpenCostScroll ? 180 : 0); 
 | 
        }); 
 | 
        changeSpeedBtn.AddListener(() => 
 | 
        { 
 | 
            isOpenSpeedScroll = !isOpenSpeedScroll; 
 | 
            speedScroll.SetActive(isOpenSpeedScroll); 
 | 
            speedArrow.transform.localRotation = Quaternion.Euler(0, 0, isOpenSpeedScroll ? 180 : 0); 
 | 
        }); 
 | 
  
 | 
        betterEquipToggle.AddListener((bool value) => 
 | 
        { 
 | 
            betterEquipToggle.isOn = value; 
 | 
        }); 
 | 
  
 | 
        costScroll.GetComponent<ClickScreenOtherSpace>().AddListener(() => 
 | 
        { 
 | 
            isOpenCostScroll = false; 
 | 
            costArrow.transform.localRotation = Quaternion.Euler(0, 0, 0); 
 | 
        }); 
 | 
  
 | 
        speedScroll.GetComponent<ClickScreenOtherSpace>().AddListener(() => 
 | 
        { 
 | 
            isOpenSpeedScroll = false; 
 | 
            speedArrow.transform.localRotation = Quaternion.Euler(0, 0, 0); 
 | 
        }); 
 | 
    } 
 | 
  
 | 
    protected override void OnPreOpen() 
 | 
    { 
 | 
        costScroll.OnRefreshCell += OnRefreshCostCell; 
 | 
        speedScroll.OnRefreshCell += OnRefreshSpeedCell; 
 | 
        Display(); 
 | 
    } 
 | 
  
 | 
    protected override void OnPreClose() 
 | 
    { 
 | 
        costScroll.OnRefreshCell -= OnRefreshCostCell; 
 | 
        speedScroll.OnRefreshCell -= OnRefreshSpeedCell; 
 | 
    } 
 | 
  
 | 
  
 | 
    void Display() 
 | 
    { 
 | 
        costText.text = AutoFightModel.Instance.fightCost.ToString(); 
 | 
        speedText.text = AutoFightModel.Instance.fightSpeed.ToString(); 
 | 
        betterEquipToggle.isOn = AutoFightModel.Instance.isStopFightByBetterEquip; 
 | 
        costTip.text = Language.Get("AutoFight2", ItemConfig.Get(GeneralDefine.MoneyDisplayModel[41]).ItemName, AutoFightModel.Instance.fightCost); 
 | 
  
 | 
        if (AutoFightModel.Instance.isAutoAttackSet) 
 | 
        { 
 | 
            usingAutoObj.SetActive(true); 
 | 
            autoStartBtn.SetActive(false); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            usingAutoObj.SetActive(false); 
 | 
            autoStartBtn.SetActive(true); 
 | 
        } 
 | 
         
 | 
        costScroll.SetActive(false); 
 | 
        speedScroll.SetActive(false); 
 | 
        costArrow.transform.localRotation = Quaternion.Euler(0, 0, 0); 
 | 
        speedArrow.transform.localRotation = Quaternion.Euler(0, 0, 0); 
 | 
  
 | 
        CreateCostScroll(); 
 | 
        CreateSpeedScroll(); 
 | 
         
 | 
    } 
 | 
  
 | 
  
 | 
    void CreateCostScroll() 
 | 
    { 
 | 
        costScroll.Refresh(); 
 | 
        for (int i = 0; i < AutoFightModel.Instance.maxCost; i++) 
 | 
        { 
 | 
            costScroll.AddCell(ScrollerDataType.Header, i + 1); 
 | 
        } 
 | 
        costScroll.Restart(); 
 | 
    } 
 | 
     
 | 
    void CreateSpeedScroll() 
 | 
    { 
 | 
        speedScroll.Refresh(); 
 | 
        for (int i = 0; i < AutoFightModel.Instance.maxSpeed; i++) 
 | 
        { 
 | 
            speedScroll.AddCell(ScrollerDataType.Header, i + 1); 
 | 
        } 
 | 
        speedScroll.Restart(); 
 | 
    } 
 | 
  
 | 
  
 | 
    void OnRefreshCostCell(ScrollerDataType type, CellView cell) 
 | 
    { 
 | 
        var btn = cell.GetComponent<Button>(); 
 | 
  
 | 
        btn.AddListener(() => 
 | 
        { 
 | 
            if (AutoFightModel.Instance.autoCostWithBlessLV[cell.index - 1] > BlessLVManager.Instance.m_TreeLV) 
 | 
            { 
 | 
                SysNotifyMgr.Instance.ShowTip("autofight4", AutoFightModel.Instance.autoCostWithBlessLV[cell.index - 1]); 
 | 
                return; 
 | 
            } 
 | 
            isOpenCostScroll = false; 
 | 
            costScroll.SetActive(false); 
 | 
            costArrow.transform.localRotation = Quaternion.Euler(0, 0, 0); 
 | 
            costText.text = cell.index.ToString(); 
 | 
            costTip.text = Language.Get("AutoFight2", ItemConfig.Get(GeneralDefine.MoneyDisplayModel[41]).ItemName, cell.index); 
 | 
  
 | 
        }); 
 | 
  
 | 
  
 | 
  
 | 
        var cntText = cell.GetComponentInChildren<Text>(); 
 | 
         
 | 
        if (AutoFightModel.Instance.autoCostWithBlessLV[cell.index - 1] <= BlessLVManager.Instance.m_TreeLV) 
 | 
        {  
 | 
            cntText.text = UIHelper.AppendColor(TextColType.LightWhite, cell.index.ToString()); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            cntText.text = UIHelper.AppendColor(TextColType.Gray, cell.index.ToString()); 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
    void OnRefreshSpeedCell(ScrollerDataType type, CellView cell) 
 | 
    { 
 | 
        var btn = cell.GetComponent<Button>(); 
 | 
        var needtaskCount = TaskManager.Instance.GetNeedFinishTaskCount(AutoFightModel.Instance.speed2UnlockMissionID); 
 | 
        RechargeCount _rechargeCount; 
 | 
        bool isbuy = false; 
 | 
        if (RechargeManager.Instance.TryGetRechargeCount(AutoFightModel.Instance.speed3UnlockCTGID, out _rechargeCount)) 
 | 
        { 
 | 
            isbuy = _rechargeCount.totalCount > 0; 
 | 
        } 
 | 
  
 | 
  
 | 
        btn.AddListener(() => 
 | 
        { 
 | 
            if (cell.index == 2) 
 | 
            { 
 | 
                if (needtaskCount > 0) 
 | 
                { 
 | 
                    SysNotifyMgr.Instance.ShowTip("autofight2", needtaskCount); 
 | 
                    return; 
 | 
                } 
 | 
            } 
 | 
            else if (cell.index == 3) 
 | 
            { 
 | 
                if (!isbuy) 
 | 
                { 
 | 
                    SysNotifyMgr.Instance.ShowTip("autofight3"); 
 | 
                    return; 
 | 
                } 
 | 
            } 
 | 
            isOpenSpeedScroll = false; 
 | 
            speedScroll.SetActive(false); 
 | 
            speedArrow.transform.localRotation = Quaternion.Euler(0, 0, 0); 
 | 
            speedText.text = cell.index.ToString(); 
 | 
        });  
 | 
  
 | 
        var cntText = cell.GetComponentInChildren<Text>(); 
 | 
        if (cell.index == 2) 
 | 
        { 
 | 
            cntText.text = UIHelper.AppendColor(needtaskCount > 0 ? TextColType.Gray : TextColType.LightWhite, cell.index.ToString()); 
 | 
        } 
 | 
        else if (cell.index == 3) 
 | 
        { 
 | 
            cntText.text = UIHelper.AppendColor(isbuy ? TextColType.LightWhite : TextColType.Gray, cell.index.ToString()); 
 | 
        } 
 | 
        else 
 | 
        { 
 | 
            cntText.text = cell.index.ToString(); 
 | 
        } 
 | 
    } 
 | 
  
 | 
    void OnClickAutoStart() 
 | 
    { 
 | 
        AutoFightModel.Instance.isAutoAttackSet = true; 
 | 
        AutoFightModel.Instance.fightCost = int.Parse(costText.text); 
 | 
        AutoFightModel.Instance.fightSpeed = int.Parse(speedText.text); 
 | 
        AutoFightModel.Instance.isStopFightByBetterEquip = betterEquipToggle.isOn; 
 | 
        AutoFightModel.Instance.SaveAutoFightSetting(); 
 | 
        CloseWindow(); 
 | 
        SysNotifyMgr.Instance.ShowTip("autofight1"); 
 | 
    } 
 | 
  
 | 
    void OnClickAutoStop() 
 | 
    { 
 | 
        ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), 
 | 
        Language.Get("AutoFight11"), (bool isOK) => 
 | 
            { 
 | 
                if (isOK) 
 | 
                { 
 | 
                    AutoFightModel.Instance.isAutoAttackSet = false; 
 | 
                    AutoFightModel.Instance.isAutoAttack = false; 
 | 
                    AutoFightModel.Instance.fightCost = int.Parse(costText.text); 
 | 
                    AutoFightModel.Instance.fightSpeed = int.Parse(speedText.text); 
 | 
                    AutoFightModel.Instance.isStopFightByBetterEquip = betterEquipToggle.isOn; 
 | 
                    AutoFightModel.Instance.SaveAutoFightSetting(); 
 | 
                    CloseWindow(); 
 | 
                } 
 | 
            }); 
 | 
  
 | 
    } 
 | 
} 
 |