lcy
2025-11-06 09bc892c7283df8757a07b646d5af21ddaa263d1
Main/System/Battle/BattleObject/BattleObject.cs
@@ -48,7 +48,7 @@
        private set;
    }
    protected BattleDrops battleDrops;
    protected BattleDrops m_battleDrops;
    private RectTransform m_heroRectTrans;
@@ -162,6 +162,10 @@
    public void OnObjInfoRefresh(H0418_tagObjInfoRefresh _refreshInfo)
    {
        // 天子的挑战拦截血条逻辑
        BattleObject boss = battleField.FindBoss();
        if (boss != null && battleField.MapID == 30020 && boss.ObjID == _refreshInfo.ObjID)
            return;
        switch ((PlayerDataType)_refreshInfo.RefreshType)
        {
            case PlayerDataType.HP:
@@ -186,6 +190,10 @@
    public void ObjPropertyRefreshView(HB418_tagSCObjPropertyRefreshView vNetData)
    {
        // 天子的挑战拦截血条逻辑
        BattleObject boss = battleField.FindBoss();
        if (boss != null && battleField.MapID == 30020 && boss.ObjID == vNetData.ObjID)
            return;
        switch ((PlayerDataType)vNetData.RefreshType)
        {
            case PlayerDataType.HP:
@@ -319,12 +327,12 @@
        if (isFatalAttack)
        {
            if (null != battleDrops)
            if (null != battleHurtParam.battleDrops)
            {
                PushDropItems(battleDrops);
                PushDropItems(battleHurtParam.battleDrops);
            }
            battleField.OnObjsDead(new List<HB422_tagMCTurnFightObjDead>() { battleHurtParam.deadPack });
        }
        else
        {
@@ -344,16 +352,6 @@
            }
        }
    }
    public void SuckHp(uint suckHP, SkillConfig skillConfig)
    {
        // teamHero.curHp = Math.Min(teamHero.maxHp, teamHero.curHp + (int)suckHP);
    }
    public void HurtByReflect(uint bounceHP, SkillConfig skillConfig)
    {
        // teamHero.curHp = Math.Max(0, teamHero.curHp - (int)bounceHP);
    }
@@ -421,13 +419,23 @@
    protected virtual BattleDmgInfo PopDamage(BattleHurtParam battleHurtParam)
    {
        BattleDmgInfo battleDmgInfo = new BattleDmgInfo(battleField.guid, battleHurtParam);
        // 天子的挑战拦截血条逻辑
        BattleObject boss = battleField.FindBoss();
        if (boss != null && battleField.MapID == 30020 && boss.ObjID == battleHurtParam.hurtObj.ObjID)
        {
            EventBroadcast.Instance.Broadcast(EventName.BATTLE_DAMAGE_TAKEN, battleDmgInfo);
            return battleDmgInfo;
        }
        else
        {
            // 使用传入的 fromHp 和 toHp 更新血条显示
            heroInfoBar.UpdateHP(battleHurtParam.fromHp, battleHurtParam.toHp, teamHero.maxHp);
        // 使用传入的 fromHp 和 toHp 更新血条显示
        heroInfoBar.UpdateHP(battleHurtParam.fromHp, battleHurtParam.toHp, teamHero.maxHp);
            // YYL TODO 是否需要挂在在自身的follow点上
            EventBroadcast.Instance.Broadcast(EventName.BATTLE_DAMAGE_TAKEN, battleDmgInfo);
            return battleDmgInfo;
        }
        // YYL TODO 是否需要挂在在自身的follow点上
        EventBroadcast.Instance.Broadcast(EventName.BATTLE_DAMAGE_TAKEN, battleDmgInfo);
        return battleDmgInfo;
    }
    public RectTransform GetAliasTeamNode()
@@ -460,21 +468,21 @@
    public void PushDropItems(BattleDrops _battleDrops)
    {
        battleDrops = _battleDrops;
        m_battleDrops = _battleDrops;
    }
    public void PerformDrop()
    {
        if (null == battleDrops || battleDrops.dropItemPackIndex.Count == 0)
        if (null == m_battleDrops || m_battleDrops.dropItemPackIndex.Count == 0)
            return;
        EventBroadcast.Instance.Broadcast<string, BattleDrops, Action>(
            EventName.BATTLE_DROP_ITEMS, battleField.guid, battleDrops, OnPerformDropFinish);
            EventName.BATTLE_DROP_ITEMS, battleField.guid, m_battleDrops, OnPerformDropFinish);
    }
    protected void OnPerformDropFinish()
    {
        battleDrops = null;
        m_battleDrops = null;
    }
    public void SetBack()