125 【战斗】战斗系统 移动速度 & 子弹速度支持(去除原本使用时间的设定)
10个文件已修改
42 ■■■■■ 已修改文件
Main/Config/Configs/SkillConfig.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleField/RecordActions/TestAction.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/BattleUtility.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/Skill/SkillBase.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Main/System/Battle/TestMoveToTarget.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
        {
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();
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 += () =>
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);
                });
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;
    }
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;
        }
    }
Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
@@ -46,7 +46,6 @@
    {
        finished = false;
        elapsed = 0f;
        duration = skillConfig.BulletFlyTime;
    }
    // 世界坐标转为bulletTrans父节点下的本地坐标
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;
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);
    }
Main/System/Battle/TestMoveToTarget.cs
@@ -17,7 +17,7 @@
            return;
        }
        BattleUtility.MoveToTarget(sourceRect, targetRect, offset, duration, () =>
        BattleUtility.MoveToTarget(sourceRect, targetRect, offset, () =>
        {
            Debug.Log("移动完成!");
        });