| Main/System/Equip/EquipExchangeCell.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Equip/EquipExchangeWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Main/AutoFightModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Main/AutoFightWin.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Main/System/Setting/QuickSetting.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Main/System/Equip/EquipExchangeCell.cs
@@ -39,12 +39,12 @@ [SerializeField] RectTransform bgRect; int cmpResult = 0; // 装备对比结果 0相同 1更强 2更弱 bool isToggle = true; void Start() { putonButton.AddListener(() => { AutoFightModel.Instance.hasAutoExchanged = true; EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)EquipModel.Instance.selectFloorEquip.gridIndex }, 2); }); @@ -54,7 +54,7 @@ decomposeCheck.onValueChanged.RemoveAllListeners(); decomposeCheck.onValueChanged.AddListener((bool isOn) => { isToggle = !isToggle; AutoFightModel.Instance.isAutoExchangeDecomposeOld = !AutoFightModel.Instance.isAutoExchangeDecomposeOld; }); } @@ -90,7 +90,7 @@ equipedText.SetActive(false); fightPowerGO.SetActive(true); btnsGO.SetActive(true); decomposeCheck.isOn = isToggle; decomposeCheck.isOn = AutoFightModel.Instance.isAutoExchangeDecomposeOld; if (oldEquip == null) { @@ -172,7 +172,7 @@ //延迟处理特效大小 async UniTask RefreshEffect(ItemModel equip) { { await UniTask.DelayFrame(1); int effectID = EquipModel.Instance.equipUIEffects[Math.Min(equip.config.ItemColor, EquipModel.Instance.equipUIEffects.Length) - 1]; if (effectID == 0) @@ -216,13 +216,15 @@ { if (ok) { AutoFightModel.Instance.hasAutoExchanged = true; EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)EquipModel.Instance.selectFloorEquip.gridIndex }, 2, decomposeCheck.isOn); } }); } else { AutoFightModel.Instance.hasAutoExchanged = true; EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)EquipModel.Instance.selectFloorEquip.gridIndex }, 2, decomposeCheck.isOn); } @@ -239,13 +241,15 @@ { if (ok) { AutoFightModel.Instance.hasAutoExchanged = true; EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)EquipModel.Instance.selectFloorEquip.gridIndex }, 1); } }); } else { AutoFightModel.Instance.hasAutoExchanged = true; EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)EquipModel.Instance.selectFloorEquip.gridIndex }, 1); } } @@ -255,7 +259,7 @@ ItemModel oldEquip = null; if (isNewEquip) { { //找对比装备 oldEquip = PackManager.Instance.GetItemByIndex(PackType.Equip, EquipModel.Instance.selectFloorEquip.config.EquipPlace - 1); } Main/System/Equip/EquipExchangeWin.cs
@@ -1,10 +1,4 @@ using Spine; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine; //获得装备界面 public class EquipExchangeWin : UIBase @@ -12,13 +6,13 @@ [SerializeField] EquipExchangeCell oldEquipObj; [SerializeField] EquipExchangeCell newEquipObj; protected override void OnPreOpen() { // 通知主战场暂停 BattleManager.Instance.storyBattleField.IsPause = true; AutoFightModel.Instance.hasAutoExchanged = false; AutoFightModel.Instance.startServerTime = TimeUtility.AllSeconds; EquipModel.Instance.OnEquipOPResultAction += OnRefreshItem; Display(); @@ -29,17 +23,12 @@ // } } protected override void OnClose() { EquipModel.Instance.OnEquipOPResultAction -= OnRefreshItem; // 通知主战场 BattleManager.Instance.storyBattleField.IsPause = false; } void Display() { @@ -69,14 +58,77 @@ } void OnRefreshItem(bool isDone, int index) { AutoFightModel.Instance.hasAutoExchanged = false; Display(); } private void LateUpdate() { TryAutoExchangeEquip(); } /// <summary> /// 尝试自动换装 /// </summary> private void TryAutoExchangeEquip() { // 已交换过,不再处理 if (AutoFightModel.Instance.hasAutoExchanged) return; if (!AutoFightModel.Instance.isAutoAttack) return; if (!AutoFightModel.Instance.isAutoChangeBetterEquip) return; int elapsedSeconds = TimeUtility.AllSeconds - AutoFightModel.Instance.startServerTime; if (elapsedSeconds < AutoFightModel.Instance.autoChangeBetterEquipWaitTimeS) return; // 检查是否有新装备 if (EquipModel.Instance.selectFloorEquip == null) return; AutoFightModel.Instance.hasAutoExchanged = true; AutoExchangeEquip(); } /// <summary> /// 自动交换装备 /// </summary> private void AutoExchangeEquip() { // 检查新装备战力是否更高 long fightPowerChange = FightPowerManager.Instance.GetFightPowerChange(EquipModel.Instance.selectFloorEquip); bool isFightPowerUp = fightPowerChange > 0; int equipPlace = EquipModel.Instance.selectFloorEquip.config.EquipPlace - 1; var oldEquip = PackManager.Instance.GetItemByIndex(PackType.Equip, equipPlace); //是否替换后自动分解原装备 if (isFightPowerUp) { if (oldEquip == null) { EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)EquipModel.Instance.selectFloorEquip.gridIndex }, 2); } else { EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)EquipModel.Instance.selectFloorEquip.gridIndex }, 2, AutoFightModel.Instance.isAutoExchangeDecomposeOld); } } else { //是否替换后自动分解原装备 if (AutoFightModel.Instance.isAutoExchangeDecomposeOld) { EquipModel.Instance.SendEquipOP(new ushort[] { (ushort)EquipModel.Instance.selectFloorEquip.gridIndex }, 1); } } } } Main/System/Main/AutoFightModel.cs
@@ -80,6 +80,57 @@ } } public bool isAutoChangeBetterEquip { get { return QuickSetting.Instance.GetQuickSettingBool(QuickSettingType.AutoFight_AutoChangeBetterEquip, 0); } set { QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_AutoChangeBetterEquip, value); } } public int startServerTime; // 开始时的服务器时间戳 bool m_HasAutoExchanged = false; public bool hasAutoExchanged // 是否已自动交换过 { get { return m_HasAutoExchanged; } set { if (m_HasAutoExchanged == value) return; m_HasAutoExchanged = value; if (!value) { startServerTime = TimeUtility.AllSeconds; } } } bool m_IsAutoExchangeDecomposeOld = false; public bool isAutoExchangeDecomposeOld //是否替换后自动分解原装备 { get { return m_IsAutoExchangeDecomposeOld; } set { if (m_IsAutoExchangeDecomposeOld == value) return; m_IsAutoExchangeDecomposeOld = value; if (value) { hasAutoExchanged = false; } } } public event Action<bool> OnAutoChallengeBossEvent; //自动挑战首领 public bool isAutoChallengeBoss @@ -143,6 +194,9 @@ } public event Action ChangeAutoEvent; public int maxSpeed = 3; //最高速度 索引 public int maxCost; //最高消耗 public int[] autoCostWithBlessLV; //自动战斗消耗倍数关联祝福等级 @@ -153,6 +207,7 @@ public int maxTryChallengeCD; //打主线boss战败后,间隔x秒后重试 public int openAutoFinishCond;//自动完成任务需祝福树X级 public int autoCloseWinCD; public int autoChangeBetterEquipWaitTimeS;//装备对比界面打开x秒后,为玩家替换高战力装备 public override void Init() { @@ -172,7 +227,7 @@ { BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerInit; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin += OnBeforePlayerDataInitializeEventOnRelogin; DTC0102_tagCDBPlayer.beforePlayerDataInitializeEventOnRelogin -= OnBeforePlayerDataInitializeEventOnRelogin; EventBroadcast.Instance.RemoveListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast); BlessLVManager.Instance.OnBlessLVUpdateEvent -= UpdateRedpint; TaskManager.Instance.OnTaskUpdate -= OnTaskUpdate; @@ -188,6 +243,7 @@ speed2UnlockMissionID = int.Parse(config.Numerical2); maxCost = autoCostWithBlessLV.Length; autoCloseWinCD = int.Parse(config.Numerical3); autoChangeBetterEquipWaitTimeS = int.Parse(config.Numerical5); config = FuncConfigConfig.Get("AutoGuaji1"); openAutoChallengeBossCond = int.Parse(config.Numerical1); maxTryChallengeCount = int.Parse(config.Numerical2); @@ -200,11 +256,14 @@ { fightingHeroSkinID = 0; heroGuid = ""; startServerTime = 0; hasAutoExchanged = false; } private void OnBeforePlayerDataInitializeEventOnRelogin() { nowChallengeCount = 0; isAutoExchangeDecomposeOld = true; } Dictionary<string, int> winWaitCloseDict = new Dictionary<string, int>(); Main/System/Main/AutoFightWin.cs
@@ -22,6 +22,7 @@ [SerializeField] ScrollerController speedScroll; [SerializeField] Toggle betterEquipToggle; [SerializeField] Toggle autoChangeBetterEquipToggle; // 自动替换高战力装备 [SerializeField] Toggle autoChallengeBossToggle; [SerializeField] Button tryChallengeBtn; @@ -75,9 +76,25 @@ 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) => @@ -164,6 +181,7 @@ 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); @@ -341,10 +359,12 @@ 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"); @@ -362,6 +382,7 @@ 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; Main/System/Setting/QuickSetting.cs
@@ -24,6 +24,7 @@ quickSettingDic.Add(QuickSettingType.AutoFight_ChallengeBoss, new QuickSettingRange(QuickSettingType.AutoFight_ChallengeBoss, 18, 1)); quickSettingDic.Add(QuickSettingType.AutoFight_TryChallengeCount, new QuickSettingRange(QuickSettingType.AutoFight_TryChallengeCount, 19, 1)); quickSettingDic.Add(QuickSettingType.AutoFight_AutoFinishTask, new QuickSettingRange(QuickSettingType.AutoFight_AutoFinishTask, 20, 1)); quickSettingDic.Add(QuickSettingType.AutoFight_AutoChangeBetterEquip, new QuickSettingRange(QuickSettingType.AutoFight_AutoChangeBetterEquip, 21, 1)); setting = new string(UCharacter, 100); DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerDataInitializeEvent; @@ -156,6 +157,7 @@ if (PlayerDatas.Instance.baseData.LV == 1 && !AutoFightModel.Instance.isStopFightByBetterEquip) { AutoFightModel.Instance.isStopFightByBetterEquip = true; AutoFightModel.Instance.isAutoChangeBetterEquip = false; AutoFightModel.Instance.SaveAutoFightSetting(); } } @@ -175,6 +177,7 @@ AutoFight_ChallengeBoss, //自动挑战首领 AutoFight_TryChallengeCount, //自动挑战首领,战败x次停止 AutoFight_AutoFinishTask, //自动完成任务 AutoFight_AutoChangeBetterEquip, //自动替换高战力装备 } public class QuickSettingRange