From a145fccec270b699d9231891650b19d6857d385a Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期二, 09 九月 2025 16:19:41 +0800
Subject: [PATCH] 125 【战斗】战斗系统 修复表现上的一些问题
---
Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs | 10 ++++------
Main/System/Battle/BattleEffectMgr.cs | 5 +++--
Main/System/Battle/SkillEffect/SkillEffect.cs | 7 +++++--
Main/System/Battle/SkillEffect/BulletSkillEffect.cs | 2 +-
Main/Component/UI/Effect/BattleEffectPlayer.cs | 11 +++++++----
5 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/Main/Component/UI/Effect/BattleEffectPlayer.cs b/Main/Component/UI/Effect/BattleEffectPlayer.cs
index 528eeb4..3be7521 100644
--- a/Main/Component/UI/Effect/BattleEffectPlayer.cs
+++ b/Main/Component/UI/Effect/BattleEffectPlayer.cs
@@ -30,8 +30,7 @@
}
}
-
-
+ public bool isRedCamp = true;
public EffectConfig effectConfig;
public float speedRate = 1f;
@@ -118,7 +117,7 @@
if (effectConfig.effectPos != null && effectConfig.effectPos.Length >= 2)
{
- rectTrans.anchoredPosition += new Vector2(effectConfig.effectPos[0], effectConfig.effectPos[1]);
+ rectTrans.anchoredPosition += new Vector2((isRedCamp ? 1f : -1f) * effectConfig.effectPos[0], effectConfig.effectPos[1]);
}
if (effectConfig.effectScale > 0f)
@@ -416,7 +415,7 @@
// 鍒涘缓鍚庣殑鐗规晥浼氳嚜鍔ㄩ殣钘� 闇�瑕佹墜鍔ㄨ皟鐢≒lay鎵嶈兘鎾斁
- public static BattleEffectPlayer Create(int effectId, Transform parent)
+ public static BattleEffectPlayer Create(int effectId, Transform parent, bool isRedCamp)
{
// 鐩存帴鍒涘缓鐗规晥鎾斁鍣紝涓嶄娇鐢ㄥ璞℃睜
BattleEffectPlayer battleEffectPlayer = null;
@@ -427,6 +426,10 @@
battleEffectPlayer.rectTrans = newGo.AddMissingComponent<RectTransform>();
battleEffectPlayer.effectId = effectId;
+
+ // 璁剧疆闃佃惀
+ battleEffectPlayer.isRedCamp = isRedCamp;
+
battleEffectPlayer.SetActive(true);
return battleEffectPlayer;
}
diff --git a/Main/System/Battle/BattleEffectMgr.cs b/Main/System/Battle/BattleEffectMgr.cs
index f1c076d..b9419a2 100644
--- a/Main/System/Battle/BattleEffectMgr.cs
+++ b/Main/System/Battle/BattleEffectMgr.cs
@@ -63,8 +63,9 @@
effectDict[effectId] = new List<BattleEffectPlayer>();
}
+ bool isRedCamp = camp == BattleCamp.Red;
- BattleEffectPlayer effectPlayer = BattleEffectPlayer.Create(effectId, battleField.battleRootNode.transform);
+ BattleEffectPlayer effectPlayer = BattleEffectPlayer.Create(effectId, battleField.battleRootNode.transform, isRedCamp);
// 璁剧疆鐗规晥缂╂斁鍜屾柟鍚�
effectPlayer.transform.position = parent.position;
@@ -77,7 +78,7 @@
effectPlayer.Play(true);
var effectScale = effectPlayer.transform.localScale;
- effectScale.x *= camp == BattleCamp.Red ? 1 : -1;
+ effectScale.x *= isRedCamp ? 1 : -1;
effectPlayer.transform.localScale = effectScale;
return effectPlayer;
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
index c9a41e2..92db15a 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
@@ -37,18 +37,16 @@
if (null != bulletTrans)
{
bulletTrans.anchoredPosition = pos;
+
}
Vector2 dir = end - start;
- float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
+ float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg + (caster.Camp == BattleCamp.Red ? 0 : 180);
if (null != bulletTrans)
{
- bulletTrans.localRotation = Quaternion.Euler(0, bulletTrans.transform.localScale.x < 0f ? 180 : 0, angle);
+ bulletTrans.rotation = Quaternion.Euler(0, 0, angle);
}
- // if (bulletTrans.transform.localScale.x < 0f)
- // {
- // bulletTrans.transform.localRotation *= Quaternion.Euler(0, 180, 0);
- // }
+
if (t >= 1f)
{
finished = true;
diff --git a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
index cfa0549..4e0b138 100644
--- a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
@@ -242,6 +242,6 @@
isCurveFinish |= bulletCurve.IsFinished;
}
- return isCurveFinish && isFinish;
+ return isCurveFinish && base.IsFinished();
}
}
\ No newline at end of file
diff --git a/Main/System/Battle/SkillEffect/SkillEffect.cs b/Main/System/Battle/SkillEffect/SkillEffect.cs
index 5acf824..023db9c 100644
--- a/Main/System/Battle/SkillEffect/SkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/SkillEffect.cs
@@ -10,6 +10,8 @@
protected bool isFinish = false;
+ protected bool isFinishFrameEnd = false;
+
protected Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit;
public SkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
@@ -64,16 +66,17 @@
/// </summary>
public virtual void OnFinalFrameEnd()
{
-
+ isFinishFrameEnd = true;
}
public virtual bool IsFinished()
{
- return isFinish;
+ return isFinish && isFinishFrameEnd;
}
public virtual void ForceFinished()
{
isFinish = true;
+ isFinishFrameEnd = true;
}
}
\ No newline at end of file
--
Gitblit v1.8.0