hch
2025-08-31 74f26f60deac8fc1bb1f93ad26412f9a7e4a281d
Main/System/Main/AutoFightModel.cs
@@ -76,7 +76,9 @@
    {
        ParseConfig();
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit;
        BattleManager.Instance.onBattleFieldCreate += OnCreateBattleField;
        EventBroadcast.Instance.AddListener<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, OnSkillCast);
    }
@@ -84,6 +86,7 @@
    {
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
        BattleManager.Instance.onBattleFieldCreate -= OnCreateBattleField;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerInit;
    }
@@ -99,6 +102,12 @@
    void OnPlayerLoginOk()
    {
        //登录时有装备的处理
    }
    void BeforePlayerInit()
    {
        fightingHeroSkinID = 0;
        heroGuid = "";
    }
    public void SaveAutoFightSetting()
@@ -150,7 +159,7 @@
    }
    #region 战斗
    #region 主线战斗(自动和手动)
    public void StartFight()
    {
@@ -163,7 +172,7 @@
            return;
        }
        if (UIHelper.GetMoneyCnt(41) < PlayerDatas.Instance.baseData.UseHarmerCount)
        if (!ItemLogicUtility.CheckCurrencyCount(41, PlayerDatas.Instance.baseData.UseHarmerCount, 2))
        {
            if (storyBattleField.GetBattleMode() != BattleMode.Stop)
                storyBattleField.HaveRest();
@@ -190,14 +199,40 @@
    }
    void ChangeBattleModeEvent(BattleMode _battleMode)
    {
        if (_battleMode == BattleMode.Stop)
        {
            isAutoAttack = false;
        }
        OnFightEvent?.Invoke(false);
    }
    public int fightingHeroSkinID;  //当前战斗的英雄皮肤ID
    public string heroGuid;
    public event Action<bool> OnFightEvent; //是否战斗通知
    /// <summary>
    /// 技能释放 通知UI处理
    /// </summary>
    /// <param name="guid">空为主线</param>
    /// <param name="skillConfig">用于怒气等显示</param>
    /// <param name="teamHero">战斗中的武将</param>
    void OnSkillCast(string guid, SkillConfig skillConfig, TeamHero teamHero)
    {
        if (!string.IsNullOrEmpty(guid))
            return;
        if (teamHero.NPCID != 0)
            return;
        fightingHeroSkinID = teamHero.SkinID;
        heroGuid = teamHero.guid;
        OnFightEvent?.Invoke(true);
    }
    #endregion