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