lcy
13 小时以前 ae00f5b8a0b2950f652807f2c447426df10c6ee0
432 自动挂机 月卡过期后重置速度和重试次数
1个文件已修改
32 ■■■■■ 已修改文件
Main/System/Main/AutoFightModel.cs 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/AutoFightModel.cs
@@ -267,6 +267,7 @@
    {
        nowChallengeCount = 0;
        isAutoExchangeDecomposeOld = true;
        CheckAndResetExpiredCardSettings();
    }
    Dictionary<string, int> winWaitCloseDict = new Dictionary<string, int>();
@@ -574,10 +575,41 @@
        UpdateRedpint();
    }
    /// <summary>
    /// 检查并重置月卡过期后的特权设置
    /// </summary>
    void CheckAndResetExpiredCardSettings()
    {
        // 月卡过期时重置速度和重试次数
        if (!InvestModel.Instance.IsInvested(InvestModel.monthCardType))
        {
            // 如果当前速度是月卡专属的3倍速,重置为1倍速
            // 直接操作QuickSetting,绕过storyBattleField可能为null的问题
            int savedSpeed = QuickSetting.Instance.GetQuickSettingValue<int>(QuickSettingType.AutoFight_Speed, 0);
            if (savedSpeed > 2)
            {
                QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_Speed, 1);
                if (BattleManager.Instance.storyBattleField != null)
                {
                    BattleManager.Instance.storyBattleField.SetSpeedRatio(BattleManager.Instance.speedGear[0]);
                }
            }
            // 如果当前重试次数超过非月卡限制,重置为1
            int savedTry = QuickSetting.Instance.GetQuickSettingValue<int>(QuickSettingType.AutoFight_TryChallengeCount, 0);
            if (savedTry > 1)
            {
                QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_TryChallengeCount, 1);
            }
        }
    }
    void OnInvestUpdate(int type)
    {
        if (type > 2)
            return;
        CheckAndResetExpiredCardSettings();
        UpdateRedpint();
    }
}