using System;
|
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] Image costArrow;
|
[SerializeField] Text costText;
|
[SerializeField] Text costTip;
|
[SerializeField] ScrollerController costScroll;
|
|
[SerializeField] Button changeSpeedBtn;
|
[SerializeField] Text speedText;
|
[SerializeField] Image speedArrow;
|
[SerializeField] ScrollerController speedScroll;
|
|
[SerializeField] Toggle betterEquipToggle;
|
[SerializeField] Toggle autoChangeBetterEquipToggle; // 自动替换高战力装备
|
|
[SerializeField] Toggle autoChallengeBossToggle;
|
[SerializeField] Button tryChallengeBtn;
|
[SerializeField] Text tryChallengeText;
|
[SerializeField] Image tryChallengeArrow;
|
[SerializeField] ScrollerController tryChallengeScroll;
|
[SerializeField] Button tryChallengeTipBtn;
|
|
[SerializeField] Toggle autoFinishTaskToggle;
|
[SerializeField] Button autoFinishTaskTipBtn;
|
[SerializeField] Button recordBtn;
|
bool isOpenCostScroll = false;
|
bool isOpenSpeedScroll = false;
|
bool isOpenTryChallengeScroll = false;
|
|
protected override void InitComponent()
|
{
|
autoStartBtn.AddListener(OnClickAutoStart);
|
autoStopBtn.AddListener(OnClickAutoStop);
|
autoSaveBtn.AddListener(OnClickAutoStart);
|
tryChallengeTipBtn.AddListener(() =>
|
{
|
DislayTip("AutoFight15", tryChallengeTipBtn.transform.position);
|
});
|
|
autoFinishTaskTipBtn.AddListener(() =>
|
{
|
DislayTip("AutoFight16", autoFinishTaskTipBtn.transform.position);
|
});
|
|
changeCostBtn.AddListener(() =>
|
{
|
isOpenCostScroll = !isOpenCostScroll;
|
costScroll.SetActive(isOpenCostScroll);
|
costArrow.transform.localRotation = Quaternion.Euler(0, 0, isOpenCostScroll ? 180 : 0);
|
AutoFightModel.Instance.ClickCostRed();
|
});
|
|
changeSpeedBtn.AddListener(() =>
|
{
|
isOpenSpeedScroll = !isOpenSpeedScroll;
|
speedScroll.SetActive(isOpenSpeedScroll);
|
speedArrow.transform.localRotation = Quaternion.Euler(0, 0, isOpenSpeedScroll ? 180 : 0);
|
AutoFightModel.Instance.ClickSpeedRed();
|
});
|
|
tryChallengeBtn.AddListener(() =>
|
{
|
isOpenTryChallengeScroll = !isOpenTryChallengeScroll;
|
tryChallengeScroll.SetActive(isOpenTryChallengeScroll);
|
tryChallengeArrow.transform.localRotation = Quaternion.Euler(0, 0, isOpenTryChallengeScroll ? 180 : 0);
|
AutoFightModel.Instance.ClickSpeedRed();
|
});
|
|
betterEquipToggle.AddListener((bool value) =>
|
{
|
betterEquipToggle.isOn = value;
|
//取消勾选时,取消自动替换高战力装备的选项
|
if (!value)
|
{
|
autoChangeBetterEquipToggle.isOn = false;
|
}
|
});
|
|
autoChangeBetterEquipToggle.AddListener((bool value) =>
|
{
|
autoChangeBetterEquipToggle.isOn = value;
|
//勾选时,勾选装备战力提升时停止的选项
|
if (value)
|
{
|
betterEquipToggle.isOn = true;
|
}
|
});
|
|
autoChallengeBossToggle.AddListener((bool value) =>
|
{
|
if (!IsOpenTryChallenge())
|
{
|
SysNotifyMgr.Instance.ShowTip("autofight5", AutoFightModel.Instance.openAutoChallengeBossCond / 100, AutoFightModel.Instance.openAutoChallengeBossCond % 100);
|
autoChallengeBossToggle.SetIsOnWithoutNotify(false);
|
return;
|
}
|
autoChallengeBossToggle.isOn = value;
|
});
|
|
autoFinishTaskToggle.AddListener((bool value) =>
|
{
|
if (!IsOpenAutoFinishTask())
|
{
|
SysNotifyMgr.Instance.ShowTip("autofight4", AutoFightModel.Instance.openAutoFinishCond);
|
autoFinishTaskToggle.SetIsOnWithoutNotify(false);
|
return;
|
}
|
autoFinishTaskToggle.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);
|
});
|
|
tryChallengeScroll.GetComponent<ClickScreenOtherSpace>().AddListener(() =>
|
{
|
isOpenTryChallengeScroll = false;
|
tryChallengeArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
});
|
|
recordBtn.SetListener(() =>
|
{
|
UIManager.Instance.OpenWindow<EquipRecordWin>();
|
});
|
}
|
|
protected override void OnPreOpen()
|
{
|
costScroll.OnRefreshCell += OnRefreshCostCell;
|
speedScroll.OnRefreshCell += OnRefreshSpeedCell;
|
tryChallengeScroll.OnRefreshCell += OnRefreshTryChallengeCell;
|
Display();
|
}
|
|
protected override void OnPreClose()
|
{
|
costScroll.OnRefreshCell -= OnRefreshCostCell;
|
speedScroll.OnRefreshCell -= OnRefreshSpeedCell;
|
tryChallengeScroll.OnRefreshCell -= OnRefreshTryChallengeCell;
|
}
|
bool IsOpenTryChallenge()
|
{
|
return PlayerDatas.Instance.baseData.ExAttr1 / 100 > AutoFightModel.Instance.openAutoChallengeBossCond;
|
}
|
|
bool IsOpenAutoFinishTask()
|
{
|
return BlessLVManager.Instance.m_TreeLV >= AutoFightModel.Instance.openAutoFinishCond;
|
}
|
|
void DislayTip(string key, Vector3 worldPos)
|
{
|
SmallTipWin.showText = Language.Get(key);
|
SmallTipWin.worldPos = worldPos;
|
SmallTipWin.isDownShow = false;
|
UIManager.Instance.OpenWindow<SmallTipWin>();
|
}
|
|
void Display()
|
{
|
costText.text = AutoFightModel.Instance.fightCost.ToString();
|
speedText.text = AutoFightModel.Instance.fightSpeed.ToString();
|
tryChallengeText.text = AutoFightModel.Instance.tryChallengeCount.ToString();
|
betterEquipToggle.isOn = AutoFightModel.Instance.isStopFightByBetterEquip;
|
autoChangeBetterEquipToggle.isOn = AutoFightModel.Instance.isAutoChangeBetterEquip;
|
autoChallengeBossToggle.isOn = AutoFightModel.Instance.isAutoChallengeBoss;
|
autoFinishTaskToggle.isOn = AutoFightModel.Instance.isAutoFinishTask;
|
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);
|
tryChallengeScroll.SetActive(false);
|
costArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
speedArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
tryChallengeArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
CreateCostScroll();
|
CreateSpeedScroll();
|
CreateTryChallengeScroll();
|
}
|
|
|
void CreateCostScroll()
|
{
|
costScroll.Refresh();
|
for (int i = 0; i < AutoFightModel.Instance.maxCost; i++)
|
{
|
costScroll.AddCell(ScrollerDataType.Header, i + 1);
|
}
|
costScroll.Restart();
|
if (BlessLVManager.Instance.m_TreeLV >= AutoFightModel.Instance.autoCostWithBlessLV[Math.Min(AutoFightModel.Instance.autoCostWithBlessLV.Length - 1, 2)])
|
{
|
costScroll.JumpIndex(2);
|
}
|
}
|
|
void CreateSpeedScroll()
|
{
|
speedScroll.Refresh();
|
for (int i = 0; i < AutoFightModel.Instance.maxSpeed; i++)
|
{
|
speedScroll.AddCell(ScrollerDataType.Header, i + 1);
|
}
|
speedScroll.Restart();
|
}
|
|
void CreateTryChallengeScroll()
|
{
|
tryChallengeScroll.Refresh();
|
for (int i = 0; i < AutoFightModel.Instance.maxTryChallengeCount; i++)
|
{
|
tryChallengeScroll.AddCell(ScrollerDataType.Header, i + 1);
|
}
|
tryChallengeScroll.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);
|
bool isbuy = InvestModel.Instance.IsActiveFightSpeed(3);
|
bool isActiveSpeed2 = needtaskCount <= 0 || isbuy;
|
|
btn.AddListener(() =>
|
{
|
if (cell.index == 2)
|
{
|
if (!isActiveSpeed2)
|
{
|
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(!isActiveSpeed2 ? 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 OnRefreshTryChallengeCell(ScrollerDataType type, CellView cell)
|
{
|
bool isOpen = IsOpenTryChallenge();
|
bool isbuy = InvestModel.Instance.IsInvested(InvestModel.monthCardType);
|
var btn = cell.GetComponent<Button>();
|
btn.AddListener(() =>
|
{
|
if (cell.index != 1)
|
{
|
if (!isbuy)
|
{
|
SysNotifyMgr.Instance.ShowTip("autofight3");
|
return;
|
}
|
}
|
isOpenTryChallengeScroll = false;
|
tryChallengeScroll.SetActive(false);
|
tryChallengeArrow.transform.localRotation = Quaternion.Euler(0, 0, 0);
|
tryChallengeText.text = cell.index.ToString();
|
});
|
var cntText = cell.GetComponentInChildren<Text>();
|
if (cell.index != 1)
|
{
|
cntText.text = UIHelper.AppendColor(!isOpen || !isbuy ? TextColType.Gray : TextColType.LightWhite, 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.isAutoChangeBetterEquip = autoChangeBetterEquipToggle.isOn;
|
AutoFightModel.Instance.isAutoChallengeBoss = autoChallengeBossToggle.isOn;
|
AutoFightModel.Instance.nowChallengeCount = 0;
|
AutoFightModel.Instance.tryChallengeCount = int.Parse(tryChallengeText.text);
|
AutoFightModel.Instance.isAutoFinishTask = autoFinishTaskToggle.isOn;
|
AutoFightModel.Instance.hasAutoExchanged = false;
|
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.isAutoChangeBetterEquip = autoChangeBetterEquipToggle.isOn;
|
AutoFightModel.Instance.isAutoChallengeBoss = autoChallengeBossToggle.isOn;
|
AutoFightModel.Instance.tryChallengeCount = int.Parse(tryChallengeText.text);
|
AutoFightModel.Instance.isAutoFinishTask = autoFinishTaskToggle.isOn;
|
AutoFightModel.Instance.SaveAutoFightSetting();
|
CloseWindow();
|
}
|
});
|
|
}
|
}
|