hch
2025-09-10 a80d9e64b60403c71ff7ff32c9e94e6833f50ace
Main/System/Main/AutoFightModel.cs
@@ -36,7 +36,21 @@
    }
    //自动模式, 真正点击战锤消耗开启,和休息(或无材料)停止
    public bool isAutoAttack = false;
    bool m_IsAutoAttack = false;
    public bool isAutoAttack
    {
        get
        {
            return m_IsAutoAttack;
        }
        set
        {
            if (m_IsAutoAttack == value)
                return;
            m_IsAutoAttack = value;
            Debug.Log("isAutoAttack:" + m_IsAutoAttack);
        }
    }
    //是否开启自动战斗设置
    public bool isAutoAttackSet
@@ -75,18 +89,18 @@
    public override void Init()
    {
        ParseConfig();
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit;
        BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
        EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast);
    }
    public override void Release()
    {
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
        BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerInit;
    }
@@ -99,10 +113,6 @@
        maxCost = autoCostWithBlessLV.Length;
    }
    void OnPlayerLoginOk()
    {
        //登录时有装备的处理
    }
    void BeforePlayerInit()
    {
@@ -123,6 +133,7 @@
        if (storyBattleField != null && storyBattleField.GetBattleMode() != BattleMode.Stop)
        {
            //战斗中改变模式
            isAutoAttack = isAutoAttackSet;
            storyBattleField.AutoSetBattleMode();
        }
@@ -179,10 +190,8 @@
            return;
        }
        if (isAutoAttackSet)
        {
            isAutoAttack = true;
        }
        isAutoAttack = isAutoAttackSet;
        //手动会一直进入这个逻辑, 自动触发一次
        storyBattleField.AutoSetBattleMode();
@@ -211,7 +220,7 @@
    public int fightingHeroSkinID;  //当前战斗的英雄皮肤ID
    public string heroGuid; //战斗中的武将
    public event Action<bool> OnFightEvent; //是否战斗通知
    public event Action<bool> OnFightEvent; //战斗模式变更通知 战斗释放技能通知
    /// <summary>
@@ -223,6 +232,10 @@
    void OnSkillCast(string guid, SkillConfig skillConfig, TeamHero teamHero)
    {
        if (!string.IsNullOrEmpty(guid))
            return;
        //防范回收报错
        if (teamHero == null)
            return;
        //只通知玩家武将的战斗
@@ -243,6 +256,27 @@
        OnFightEvent?.Invoke(true);
    }
    public bool CanChallengeBoss()
    {
        //最后一波通过,且当前波还是最后一波;倒退只倒退波不会倒退关卡
        if (PlayerDatas.Instance.baseData.ExAttr2 != PlayerDatas.Instance.baseData.ExAttr1)
        {
            return false;
        }
        var value = PlayerDatas.Instance.baseData.ExAttr2;
        var chapterID = value / 10000;
        var levelNum = value % 10000 / 100;
        var waveID = value % 100;
        var config = MainLevelConfig.GetMainLevelConfig(chapterID, levelNum);
        if (waveID < MainLevelConfig.GetwaveCount(config))
        {
            return false;
        }
        return true;
    }
    #endregion