hch
2025-09-29 a247c56a0c15ca9d730e2c5c376b63fa461f62ce
0312 自动战斗倍率,修复规则界面滑动问题
6个文件已修改
49 ■■■■ 已修改文件
Main/System/Battle/BattleField/BattleField.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleManager.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/FullScreenBattleWin.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Main/AutoFightModel.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Setting/QuickSetting.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Tip/FuncRuleWin.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/BattleField.cs
@@ -121,7 +121,7 @@
        battleRootNode.SetBackground(ResManager.Instance.LoadAsset<Texture>("Texture/FullScreenBg", "mainui_img_277"));
        SetBattleStartState();
        SetSpeedRatio(speedRatio);
        SetSpeedRatio(BattleManager.Instance.speedGear[BattleManager.Instance.speedIndex]);
        SetRootNodePosition();
    }
Main/System/Battle/BattleManager.cs
@@ -10,6 +10,19 @@
    //  同时只能有一场战斗在进行 guid, battlefield
    protected Dictionary<string, BattleField> battleFields = new Dictionary<string, BattleField>();
    public float[] speedGear; //战斗倍数对应的实际速率
    public int speedIndex
    {
        get
        {
            return QuickSetting.Instance.GetQuickSettingValue<int>(QuickSettingType.BattleSpeed, 0);
        }
        set
        {
            QuickSetting.Instance.SetQuickSetting(QuickSettingType.BattleSpeed, value);
            QuickSetting.Instance.SendPackage();
        }
    }
    public Action<string, BattleField> onBattleFieldCreate;
@@ -24,9 +37,17 @@
        LogicEngine.Instance.OnUpdate += Run;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit;
        ParseConfig();
        
    }
    void ParseConfig()
    {
        var config = FuncConfigConfig.Get("AutoGuaji");
        speedGear = JsonMapper.ToObject<float[]>(config.Numerical4);
    }
    public override void Release()
    {
        base.Release();
Main/System/Battle/FullScreenBattleWin.cs
@@ -4,7 +4,6 @@
public class FullScreenBattleWin : UIBase
{
    float[] speedGear = { 1.1f, 1.3f, 1.5f };
    // 组件引用
    public Transform mountPoint;
@@ -63,10 +62,9 @@
        if (null == battleField)
            return;
        int index = Array.IndexOf(speedGear, battleField.speedRatio);
        index = (index + 1) % speedGear.Length;
        battleField.SetSpeedRatio(speedGear[index]);
        textSpeed.text = (index + 1).ToString();
        BattleManager.Instance.speedIndex = (BattleManager.Instance.speedIndex + 1) % BattleManager.Instance.speedGear.Length;
        battleField.SetSpeedRatio(BattleManager.Instance.speedGear[BattleManager.Instance.speedIndex]);
        textSpeed.text = (BattleManager.Instance.speedIndex + 1).ToString();
    }
    private void PauseGame()
@@ -164,6 +162,6 @@
        ui.SetBattleField(battleField);
        battleField.UpdateCanvas(canvas);
        textSpeed.text = (Array.IndexOf(speedGear, battleField.speedRatio) + 1).ToString();
        textSpeed.text = (BattleManager.Instance.speedIndex + 1).ToString();
    }
}
Main/System/Main/AutoFightModel.cs
@@ -7,7 +7,7 @@
using UnityEngine;
public class AutoFightModel : GameSystemManager<AutoFightModel>
{
    //战斗倍数:值越大越快,影响战斗表现,掉落速度等
    //战斗倍数:值越大越快,影响战斗表现,掉落速度等,这里的倍数是索引,对应配置里的实际速率
    public int fightSpeed
    {
        get
@@ -17,7 +17,9 @@
        }
        set
        {
            QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_Speed, value);
            var num = Math.Max(1, value);
            BattleManager.Instance.storyBattleField.SetSpeedRatio(BattleManager.Instance.speedGear[num - 1]);
            QuickSetting.Instance.SetQuickSetting(QuickSettingType.AutoFight_Speed, num);
        }
    }
@@ -82,11 +84,12 @@
    public event Action ChangeAutoEvent;
    public int maxSpeed = 3; //最高速度
    public int maxSpeed = 3; //最高速度 索引
    public int maxCost; //最高消耗
    public int[] autoCostWithBlessLV; //自动战斗消耗倍数关联祝福等级
    public int speed2UnlockMissionID;
    public int speed3UnlockCTGID;
    public override void Init()
    {
        ParseConfig();
@@ -191,7 +194,7 @@
            return;
        }
        BattleManager.Instance.storyBattleField.SetSpeedRatio(BattleManager.Instance.speedGear[fightSpeed - 1]);
        isAutoAttack = isAutoAttackSet;
        //手动会一直进入这个逻辑, 自动触发一次
Main/System/Setting/QuickSetting.cs
@@ -18,6 +18,8 @@
        quickSettingDic.Add(QuickSettingType.AutoFight_FightPower, new QuickSettingRange(QuickSettingType.AutoFight_FightPower, 2, 1));
        quickSettingDic.Add(QuickSettingType.AutoFight_Open, new QuickSettingRange(QuickSettingType.AutoFight_Open, 3, 1));
        quickSettingDic.Add(QuickSettingType.AutoGoldRush, new QuickSettingRange(QuickSettingType.AutoGoldRush, 4, 10, 1));  //自动淘金,9个物品值,1个自动刷新开关
        quickSettingDic.Add(QuickSettingType.BattleSpeed, new QuickSettingRange(QuickSettingType.BattleSpeed, 14, 1));
        setting = new string(UCharacter, 100);
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerDataInitializeEvent;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
@@ -160,6 +162,7 @@
    AutoFight_FightPower,   //是否高战力停止
    AutoFight_Open,    //是否开启自动战斗
    AutoGoldRush,   //自动淘金
    BattleSpeed,    //战斗速度索引  非主线部分
}
public class QuickSettingRange
Main/System/Tip/FuncRuleWin.cs
@@ -7,6 +7,7 @@
{
    [SerializeField] Text m_Title;
    [SerializeField] Text m_RuleTxt;
    [SerializeField] ScrollRect m_ScrollRect;
    // [SerializeField] RectTransform scrollRect;
    // [SerializeField] float maxHeight = 800f; // 设置最大高度限制
@@ -17,6 +18,7 @@
    protected override void OnPreOpen()
    {
        m_ScrollRect.verticalNormalizedPosition = 1;
        var config = RuleConfig.Get(functionOrder);
        m_RuleTxt.text = Language.Get(config.Description);