From 2bb96c84dc1003a17526df2ef6aac3c0a285d5dd Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 12 九月 2025 09:12:01 +0800
Subject: [PATCH] 125 【战斗】战斗系统 移动速度 & 子弹速度支持(去除原本使用时间的设定)
---
Main/System/Battle/TestMoveToTarget.cs | 2 +-
Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs | 1 -
Main/System/Battle/BattleUtility.cs | 5 ++++-
Main/System/Battle/Skill/SkillBase.cs | 16 ++++++++--------
Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs | 1 +
Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs | 1 +
Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs | 2 +-
Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs | 1 +
Main/Config/Configs/SkillConfig.cs | 11 +++++++----
Main/System/Battle/BattleField/RecordActions/TestAction.cs | 2 +-
10 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/Main/Config/Configs/SkillConfig.cs b/Main/Config/Configs/SkillConfig.cs
index e0d0f65..d186d92 100644
--- a/Main/Config/Configs/SkillConfig.cs
+++ b/Main/Config/Configs/SkillConfig.cs
@@ -1,6 +1,6 @@
锘�//--------------------------------------------------------
// [Author]: YYL
-// [ Date ]: 2025骞�9鏈�2鏃�
+// [ Date ]: 2025骞�9鏈�12鏃�
//--------------------------------------------------------
using System.Collections.Generic;
@@ -46,7 +46,7 @@
public int[][] DamageDivide;
public int BulletEffectId;
public int BulletPath;
- public float BulletFlyTime;
+ public float BulletFlySpeed;
public int Scattering;
public int ExplosionEffectId;
public int ExplosionEffect2;
@@ -54,6 +54,7 @@
public int EffectId;
public int EffectId2;
public int MStartEffectId;
+ public int BuffEffect;
public int TriggerEffect;
public override int LoadKey(string _key)
@@ -138,7 +139,7 @@
int.TryParse(tables[29],out BulletPath);
- float.TryParse(tables[30],out BulletFlyTime);
+ float.TryParse(tables[30],out BulletFlySpeed);
int.TryParse(tables[31],out Scattering);
@@ -154,7 +155,9 @@
int.TryParse(tables[37],out MStartEffectId);
- int.TryParse(tables[38],out TriggerEffect);
+ int.TryParse(tables[38],out BuffEffect);
+
+ int.TryParse(tables[39],out TriggerEffect);
}
catch (Exception exception)
{
diff --git a/Main/System/Battle/BattleField/RecordActions/TestAction.cs b/Main/System/Battle/BattleField/RecordActions/TestAction.cs
index 23532b8..24a6115 100644
--- a/Main/System/Battle/BattleField/RecordActions/TestAction.cs
+++ b/Main/System/Battle/BattleField/RecordActions/TestAction.cs
@@ -51,7 +51,7 @@
BattleObject caster = battleField.battleObjMgr.GetBattleObjectByIndex(BattleCamp.Red, selfIndex);
BattleDebug.LogError("Move to target , target is " + target.name);
caster.motionBase.PlayAnimation(MotionName.run, true);
- var tweener = BattleUtility.MoveToTarget(caster.heroRectTrans, target, offset, duration, () =>
+ var tweener = BattleUtility.MoveToTarget(caster.heroRectTrans, target, offset, () =>
{
caster.motionBase.PlayAnimation(MotionName.idle, true);
onComplete?.Invoke();
diff --git a/Main/System/Battle/BattleUtility.cs b/Main/System/Battle/BattleUtility.cs
index 23774fe..dd04a89 100644
--- a/Main/System/Battle/BattleUtility.cs
+++ b/Main/System/Battle/BattleUtility.cs
@@ -61,7 +61,7 @@
public static TweenerCore<Vector2, Vector2, DG.Tweening.Plugins.Options.VectorOptions> MoveToTarget(
- RectTransform transform, RectTransform target, Vector2 offset, float duration, Action onComplete = null)
+ RectTransform transform, RectTransform target, Vector2 offset, Action onComplete = null, float speed = 450f)
{
// 鑾峰彇鐩爣鑺傜偣鐨勪笘鐣屽潗鏍囷紙涓績鐐癸級
@@ -78,6 +78,9 @@
out localPoint);
// 鍒涘缓RawImage
+ float distance = Vector2.Distance(transform.anchoredPosition, localPoint);
+
+ float duration = distance / speed; // 鍋囪閫熷害涓�1000鍗曚綅/绉掞紝鍙互鏍规嵁闇�瑕佽皟鏁�
var tween = transform.DOAnchorPos(localPoint, duration).SetEase(Ease.Linear);
tween.onComplete += () =>
diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index f5a834c..f51ffe4 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -151,7 +151,7 @@
// battleField.battleTweenMgr.OnPlayTween(tweener);
}
- protected void MoveToTarget(RectTransform target, Vector2 offset, float duration, Action onComplete = null)
+ protected void MoveToTarget(RectTransform target, Vector2 offset, Action onComplete = null)
{
// 鍘熷湴閲婃斁
if (skillConfig.CastDistance >= 9999)
@@ -161,7 +161,7 @@
}
caster.motionBase.PlayAnimation(MotionName.run, true);
- var tweener = BattleUtility.MoveToTarget(caster.heroRectTrans, target, offset, duration, () =>
+ var tweener = BattleUtility.MoveToTarget(caster.heroRectTrans, target, offset, () =>
{
caster.motionBase.PlayAnimation(MotionName.idle, true);
onComplete?.Invoke();
@@ -186,7 +186,7 @@
RectTransform target = battleField.GetTeamNode(caster.GetEnemyCamp(), skillConfig);
- MoveToTarget(target, new Vector2(skillConfig.CastDistance, 0), moveTime, () =>
+ MoveToTarget(target, new Vector2(skillConfig.CastDistance, 0), () =>
{
// 鍒颁綅缃浆韬�(涓嶄竴瀹氶潪瑕佽浆韬� 浣嗘槸娴佺▼瑕佸啓)
TurnBack(() =>
@@ -198,7 +198,7 @@
() =>
{
// 鍥炲埌鍘熸潵鐨勪綅缃�
- MoveToTarget(battleField.GetTeamNode(caster.Camp, caster.teamHero.positionNum), Vector2.zero, moveTime,
+ MoveToTarget(battleField.GetTeamNode(caster.Camp, caster.teamHero.positionNum), Vector2.zero,
OnAttackFinish);
}
, -1f);
@@ -225,7 +225,7 @@
RectTransform targetTrans = battleField.GetTeamNode(battleCamp, mainTargetPosNum);
- MoveToTarget(targetTrans, new Vector2(skillConfig.CastDistance, 0), moveTime, () =>
+ MoveToTarget(targetTrans, new Vector2(skillConfig.CastDistance, 0), () =>
{
// 鍒颁綅缃浆韬�(涓嶄竴瀹氶潪瑕佽浆韬� 浣嗘槸娴佺▼瑕佸啓)
TurnBack(() =>
@@ -237,7 +237,7 @@
() =>
{
// 鍥炲埌鍘熸潵鐨勪綅缃�
- MoveToTarget(battleField.GetTeamNode(caster.Camp, caster.teamHero.positionNum), Vector2.zero, moveTime,
+ MoveToTarget(battleField.GetTeamNode(caster.Camp, caster.teamHero.positionNum), Vector2.zero,
OnAttackFinish);
}
, -1f);
@@ -255,7 +255,7 @@
{
RectTransform target = battleField.GetTeamNode(caster.Camp, skillConfig);
- MoveToTarget(target, new Vector2(skillConfig.CastDistance, 0), moveTime, () =>
+ MoveToTarget(target, new Vector2(skillConfig.CastDistance, 0), () =>
{
// 鍒颁綅缃浆韬�(涓嶄竴瀹氶潪瑕佽浆韬� 浣嗘槸娴佺▼瑕佸啓)
TurnBack(() =>
@@ -268,7 +268,7 @@
{
// 鍥炲埌鍘熸潵鐨勪綅缃�
MoveToTarget(battleField.GetTeamNode(caster.Camp, caster.teamHero.positionNum),
- Vector2.zero, moveTime, OnAttackFinish);
+ Vector2.zero, OnAttackFinish);
}
, -1f);
});
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs
index d1ab419..6f74a30 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs
@@ -17,6 +17,7 @@
base.Reset();
start = WorldToLocalAnchoredPosition(bulletTrans.position);
end = WorldToLocalAnchoredPosition(target.position);
+ duration = Vector2.Distance(start, end) / skillConfig.BulletFlySpeed;
control = (start + end) / 2 + Vector2.up * 100f;
}
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs
index 32f90d1..9c1568e 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs
@@ -30,6 +30,7 @@
{
start = WorldToLocalAnchoredPosition(bulletTrans.position);
end = WorldToLocalAnchoredPosition(target.position);
+ duration = Vector2.Distance(start, end) / skillConfig.BulletFlySpeed;
}
}
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
index 7f1bcd3..8e92c98 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
@@ -46,7 +46,6 @@
{
finished = false;
elapsed = 0f;
- duration = skillConfig.BulletFlyTime;
}
// 涓栫晫鍧愭爣杞负bulletTrans鐖惰妭鐐逛笅鐨勬湰鍦板潗鏍�
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs
index ade785a..9cf08cd 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs
@@ -21,6 +21,7 @@
hitTriggered = false;
start = WorldToLocalAnchoredPosition(bulletTrans.position);
end = WorldToLocalAnchoredPosition(target.position);
+ duration = Vector2.Distance(start, end) / skillConfig.BulletFlySpeed;
Vector2 dir = (end - start).normalized;
float extend = 500f; // 璐┛璺濈锛屽彲鏍规嵁闇�姹傝皟鏁�
outPos = end + dir * extend;
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
index 92db15a..5079d3b 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
@@ -18,7 +18,7 @@
base.Reset();
start = WorldToLocalAnchoredPosition(bulletTrans.position);
end = WorldToLocalAnchoredPosition(target.position);
-
+ duration = Vector2.Distance(start, end) / skillConfig.BulletFlySpeed;
// BattleUtility.MarkStartAndEnd(bulletTrans, target);
}
diff --git a/Main/System/Battle/TestMoveToTarget.cs b/Main/System/Battle/TestMoveToTarget.cs
index d5d8d44..15b2ba5 100644
--- a/Main/System/Battle/TestMoveToTarget.cs
+++ b/Main/System/Battle/TestMoveToTarget.cs
@@ -17,7 +17,7 @@
return;
}
- BattleUtility.MoveToTarget(sourceRect, targetRect, offset, duration, () =>
+ BattleUtility.MoveToTarget(sourceRect, targetRect, offset, () =>
{
Debug.Log("绉诲姩瀹屾垚锛�");
});
--
Gitblit v1.8.0