yyl
2025-08-29 e10813023f08c85454f575d3d388dac78e0e8ac2
Main/System/Battle/BattleManager.cs
@@ -15,12 +15,16 @@
    public Action<string, BattleField> onBattleFieldDestroy;
    public bool isWaitServerStory = false;  //主线等服务端回报 0425
    public override void Init()
    {
        base.Init();
        LogicEngine.Instance.OnUpdate += Run;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent += OnPlayerLoginOk;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent += BeforePlayerInit;
    }
    public override void Release()
@@ -28,6 +32,7 @@
        base.Release();
        LogicEngine.Instance.OnUpdate -= Run;
        DTC0403_tagPlayerLoginLoadOK.playerLoginOkEvent -= OnPlayerLoginOk;
        DTC0102_tagCDBPlayer.beforePlayerDataInitializeEvent -= BeforePlayerInit;
    }
    protected void OnPlayerLoginOk()
@@ -39,6 +44,11 @@
        int FuncLineID = (int)exAttr2;
        CreateStoryBattle(MapID, FuncLineID, null, null);
    }
    void BeforePlayerInit()
    {
        isWaitServerStory = false;  //后续考虑断线重连
    }
    //  上游戏的时候 等战斗阵容更新完毕 创建主线副本 敌方的数据可以暂时不显示 己方表现为睡觉
@@ -322,22 +332,34 @@
    {
        BattleField battleField = null;
        bool isCreate = true;
        if (battleFields.TryGetValue(guid, out battleField))
        {
            BattleDebug.LogError("战场已存在 先进行销毁");
            battleField.Destroy();
            //主线战场需一直存在
            if (string.IsNullOrEmpty(guid))
            {
                isCreate = false;
            }
            else
            {
                BattleDebug.LogError("战场已存在 先进行销毁");
                battleField.Destroy();
            }
        }
        battleField = BattleFieldFactory.CreateBattleField(guid, MapID, FuncLineID, extendData, redTeamList, blueTeamList);
        if (isCreate)
        {
            battleField = BattleFieldFactory.CreateBattleField(guid, MapID, FuncLineID, extendData, redTeamList, blueTeamList);
            onBattleFieldCreate?.Invoke(guid, battleField);
        onBattleFieldCreate?.Invoke(guid, battleField);
        if (string.IsNullOrEmpty(guid))
        {
            storyBattleField = (StoryBattleField)battleField;
            if (string.IsNullOrEmpty(guid))
            {
                storyBattleField = (StoryBattleField)battleField;
            }
            battleFields.Add(guid, battleField);
        }
        battleFields.Add(guid, battleField);
        battleField.Init(MapID, FuncLineID, extendData, redTeamList, blueTeamList);
@@ -383,6 +405,8 @@
        req.ReqValue = reqValue;
        GameNetSystem.Instance.SendInfo(req);
        if (reqType >= 2)
            isWaitServerStory = true;
    }