From 83ff2cfc367d3227449fa8414a25541374929ecb Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期四, 29 一月 2026 15:43:50 +0800
Subject: [PATCH] 125 战斗 命格复活支持
---
Main/System/Battle/Skill/SkillBase.cs | 40 +++++++++++++++++++++++++++-------------
1 files changed, 27 insertions(+), 13 deletions(-)
diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index 501e71f..8f6daea 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -92,7 +92,7 @@
var Hurt = tagUseSkillAttack.HurtList[i];
BattleObject battleObject = caster.battleField.battleObjMgr.GetBattleObject((int)Hurt.ObjID);
- string targetName = battleObject != null ? battleObject.teamHero.name : "Unknown";
+ string targetName = battleObject != null ? battleObject.GetName() : "Unknown";
long hurtHp = GeneralDefine.GetFactValue(Hurt.HurtHP, Hurt.HurtHPEx);
long curHp = GeneralDefine.GetFactValue(Hurt.CurHP, Hurt.CurHPEx);
@@ -125,7 +125,7 @@
var HurtEx = tagUseSkillAttack.HurtListEx[i];
BattleObject battleObject = caster.battleField.battleObjMgr.GetBattleObject((int)HurtEx.ObjID);
- string targetName = battleObject != null ? battleObject.teamHero.name : "Unknown";
+ string targetName = battleObject != null ? battleObject.GetName() : "Unknown";
long hurtHp = GeneralDefine.GetFactValue(HurtEx.HurtHP, HurtEx.HurtHPEx);
long curHp = GeneralDefine.GetFactValue(HurtEx.CurHP, HurtEx.CurHPEx);
@@ -240,7 +240,13 @@
{
// 骞挎挱鎶�鑳介噴鏀句簨浠�
string guid = battleField.guid;
- TeamHero teamHero = caster.teamHero;
+ // 鑾峰彇閲婃斁鑰呮暟鎹細Hero 浼犻�� teamHero锛孧ingge 浼犻�� null锛堝洜涓轰簨浠剁洃鍚櫒鍙鐞� Hero 鏁版嵁锛�
+ TeamHero teamHero = null;
+ if (caster is HeroBattleObject heroBattleObject)
+ {
+ teamHero = heroBattleObject.teamHero;
+ }
+ // 鍛芥牸閲婃斁鎶�鑳芥椂 teamHero 涓� null锛岀洃鍚櫒浼氭纭鐞嗭紙宸叉湁 null 妫�鏌ワ級
EventBroadcast.Instance.Broadcast<string, SkillConfig, TeamHero>(EventName.BATTLE_CAST_SKILL, guid, skillConfig, teamHero);
if (skillConfig.SkinllSFX1 != 0)
@@ -327,7 +333,7 @@
else
{
// ShadowIllutionCreate(true);
- MoveToTarget(battleField.GetTeamNode(caster.Camp, caster.teamHero.positionNum), Vector2.zero, () =>
+ MoveToTarget(battleField.GetTeamNode(caster.Camp, caster.GetPositionNum()), Vector2.zero, () =>
{
// ShadowIllutionCreate(false);
OnAttackFinish();
@@ -352,7 +358,7 @@
ExecuteMoveAndCastSequence(targetTrans, () =>
{
- RectTransform rectTransform = battleField.GetTeamNode(caster.Camp, caster.teamHero.positionNum);
+ RectTransform rectTransform = battleField.GetTeamNode(caster.Camp, caster.GetPositionNum());
// ShadowIllutionCreate(true);
MoveToTarget(rectTransform, Vector2.zero, () =>
{
@@ -375,7 +381,7 @@
else
{
// ShadowIllutionCreate(true);
- MoveToTarget(battleField.GetTeamNode(caster.Camp, caster.teamHero.positionNum), Vector2.zero, () =>
+ MoveToTarget(battleField.GetTeamNode(caster.Camp, caster.GetPositionNum()), Vector2.zero, () =>
{
// ShadowIllutionCreate(false);
OnAttackFinish();
@@ -681,7 +687,7 @@
// 鍛戒腑鐩爣鍥炶皟锛氬鐞嗘墍鏈夎鍛戒腑鐨勭洰鏍囷紙鍖呮嫭涓荤洰鏍囥�佸脊灏勭洰鏍囥�佹簠灏勭洰鏍囷級
protected virtual void OnHitTargets(int _hitIndex, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> hitList)
{
- // Debug.LogError($"Skill {skillConfig.SkillID} hit targets _hitIndex: {_hitIndex} hit {string.Join(", ", hitList.Select(h => h.ObjID + ":" + battleField.battleObjMgr.GetBattleObject((int)h.ObjID)?.teamHero.name))}");
+ // Debug.LogError($"Skill {skillConfig.SkillID} hit targets _hitIndex: {_hitIndex} hit {string.Join(", ", hitList.Select(h => h.ObjID + ":" + battleField.battleObjMgr.GetBattleObject((int)h.ObjID)?.GetName()))}");
// 閫犳垚浼ゅ鍓嶅厛澶勭悊琛�閲忓埛鏂板寘
HandleRefreshHP();
@@ -789,7 +795,7 @@
Hint(battleObject, hintConfig);
battleField.battleEffectMgr.PlayEffect(battleObject,
BattleConst.BreakArmorEffectID, battleObject.GetRectTransform(), battleObject.Camp,
- battleObject.teamHero.modelScale);
+ battleObject.GetModelScale());
}
}
else if ((hurt.AttackTypes & (int)DamageType.Parry) == (int)DamageType.Parry)
@@ -801,7 +807,7 @@
Hint(battleObject, hintConfig);
battleField.battleEffectMgr.PlayEffect(battleObject,
BattleConst.ParryEffectID, battleObject.GetRectTransform(), battleObject.Camp,
- battleObject.teamHero.modelScale);
+ battleObject.GetModelScale());
}
}
}
@@ -889,8 +895,8 @@
BattleDebug.LogError(
(hurtParam.caster.casterObj.Camp == BattleCamp.Red ? "銆愮孩鏂硅鍔ㄣ��" : "銆愯摑鏂硅鍔ㄣ�� ") +
- $"鏀诲嚮鑰�: {hurtParam.caster.casterObj.teamHero.name} (ObjID:{hurtParam.caster.casterObj.ObjID})\n" +
- $"鐩爣: {hurtParam.hurter.hurtObj.teamHero.name} (ObjID:{hurtParam.hurter.hurtObj.ObjID})\n" +
+ $"鏀诲嚮鑰�: {hurtParam.caster.casterObj.GetName()} (ObjID:{hurtParam.caster.casterObj.ObjID})\n" +
+ $"鐩爣: {hurtParam.hurter.hurtObj.GetName()} (ObjID:{hurtParam.hurter.hurtObj.ObjID})\n" +
$"鎶�鑳�: {hurtParam.skillConfig.SkillName} (ID:{hurtParam.skillConfig.SkillID})\n" +
$"鍑绘暟: 绗瑊hurtParam.hitIndex + 1}鍑� / 鍏眥hurtParam.skillConfig.DamageDivide.Length}鍑�" + (isLastHit ? " [鏈�鍚庝竴鍑籡" : " [涓棿鍑籡") + "\n" +
$"\n" +
@@ -1552,7 +1558,11 @@
BattleObject battleObj = battleField.battleObjMgr.GetBattleObject((int)buffRefresh.ObjID);
if (battleObj != null)
{
- battleObj.buffMgr.RefreshBuff(buffRefresh, true);
+ var buffMgr = battleObj.GetBuffMgr();
+ if (buffMgr != null) // 鍛芥牸涓嶆湁 buff 绠$悊鍣�
+ {
+ buffMgr.RefreshBuff(buffRefresh, true);
+ }
}
}
else if (pack is HB429_tagSCBuffDel buffDel)
@@ -1560,7 +1570,11 @@
BattleObject battleObj = battleField.battleObjMgr.GetBattleObject((int)buffDel.ObjID);
if (battleObj != null)
{
- battleObj.buffMgr.RemoveBuff(buffDel, false);
+ var buffMgr = battleObj.GetBuffMgr();
+ if (buffMgr != null) // 鍛芥牸涓嶆湁 buff 绠$悊鍣�
+ {
+ buffMgr.RemoveBuff(buffDel, false);
+ }
}
}
}
--
Gitblit v1.8.0