From c5c6c915069a1f93d10ee3d2c897beca1e100c8d Mon Sep 17 00:00:00 2001
From: yyl <yyl>
Date: 星期五, 12 九月 2025 18:44:25 +0800
Subject: [PATCH] 125 战斗 诸葛果 连续普攻问题修复 治疗技能增加
---
Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs | 8 +
Main/System/Battle/Skill/SkillFactory.cs | 6
Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs | 6
Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs | 8
Main/System/Battle/Motion/MotionBase.cs | 3
Main/System/Battle/SkillEffect/BulletCurve/BulletCurveFactory.cs | 11 +-
Main/System/Battle/SkillEffect/BulletSkillEffect.cs | 67 +++++++------
Main/System/Battle/BattleField/BattleField.cs | 9 +
/dev/null | 8 -
Main/Component/UI/Common/RendererAdjuster.cs | 72 ++++++++++++++
Main/System/Battle/RecordPlayer/RecordPlayer.cs | 8
Main/System/Battle/BattleObject/BattleObject.cs | 8 -
Main/System/Battle/Skill/SkillBase.cs | 2
Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs | 6
Main/System/Battle/Skill/DirectlyHealSkill.cs | 28 ++---
Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs | 6
Main/System/Battle/UIComp/BattleHeroInfoBar.cs | 4
Main/Component/UI/Common/RendererAdjuster.cs.meta | 11 ++
Main/System/Battle/Define/DamageType.cs | 3
19 files changed, 172 insertions(+), 102 deletions(-)
diff --git a/Main/Component/UI/Common/RendererAdjuster.cs b/Main/Component/UI/Common/RendererAdjuster.cs
new file mode 100644
index 0000000..56b9b23
--- /dev/null
+++ b/Main/Component/UI/Common/RendererAdjuster.cs
@@ -0,0 +1,72 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using System;
+
+public class RendererAdjuster : MonoBehaviour
+{
+ public int renderQueue = 3000;
+
+ public Canvas canvas;
+
+ public int sortingOrderOffset = 1;
+
+ public string customSortingLayer = "UI";
+
+ public List<Renderer> renderers = new List<Renderer>();
+
+ public void Awake()
+ {
+ UpdateComps();
+ }
+
+ protected void UpdateComps()
+ {
+ renderers.Clear();
+ renderers.AddRange(gameObject.GetComponentsInChildren<Renderer>(true));
+
+ canvas = GetComponentInParent<Canvas>();
+ }
+
+ public void SetParentCanvas(Canvas _canvas)
+ {
+ canvas = _canvas;
+ this.DelayFrame(UpdateSortingOrder);
+ }
+
+ public void UpdateSortingOrder()
+ {
+ int canvasSortingOrder = 0;
+
+ // 鑾峰彇鐖剁骇Canvas鐨勬帓搴忛『搴�
+ if (canvas != null)
+ {
+ canvasSortingOrder = canvas.sortingOrder;
+ }
+ else
+ {
+ // 濡傛灉娌℃湁鎵惧埌鐖剁骇Canvas锛屽垯浣跨敤榛樿鍊�
+ canvasSortingOrder = 0;
+ }
+
+ // 灏嗙壒鏁堢殑鎺掑簭椤哄簭璁剧疆涓篊anvas鎺掑簭椤哄簭鍔犱笂鍋忕Щ閲�
+ ApplySortingSettings(canvasSortingOrder + sortingOrderOffset, customSortingLayer);
+ }
+
+ private void ApplySortingSettings(int sortingOrder, string sortingLayer)
+ {
+ foreach (Renderer renderer in renderers)
+ {
+ if (renderer != null)
+ {
+ renderer.sortingOrder = sortingOrder;
+ renderer.material.renderQueue = renderQueue; // 璁剧疆娓叉煋闃熷垪
+ // renderer.material.renderQueue = overlayRQ;
+ if (!string.IsNullOrEmpty(sortingLayer))
+ {
+ renderer.sortingLayerName = sortingLayer;
+ }
+ }
+ }
+ }
+}
diff --git a/Main/Component/UI/Common/RendererAdjuster.cs.meta b/Main/Component/UI/Common/RendererAdjuster.cs.meta
new file mode 100644
index 0000000..ba23f2e
--- /dev/null
+++ b/Main/Component/UI/Common/RendererAdjuster.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 75517d945fb16024d9ab09ca21288a01
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Main/Core/GameEngine/Login.meta b/Main/Core/GameEngine/Login.meta
deleted file mode 100644
index e99982a..0000000
--- a/Main/Core/GameEngine/Login.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 8eda8f1b1cda90b408dd25bd730b25ab
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Main/System/Battle/BattleField/BattleField.cs b/Main/System/Battle/BattleField/BattleField.cs
index 3ddafd5..19a23e5 100644
--- a/Main/System/Battle/BattleField/BattleField.cs
+++ b/Main/System/Battle/BattleField/BattleField.cs
@@ -372,6 +372,15 @@
blocker.SetParentCanvas(canvas);
}
}
+
+ RendererAdjuster[] adjusters = battleRootNode.GetComponentsInChildren<RendererAdjuster>(true);
+ if (null != adjusters)
+ {
+ foreach (var adjuster in adjusters)
+ {
+ adjuster.SetParentCanvas(canvas);
+ }
+ }
}
public void StartBattle(Action onMoveComplete)
diff --git a/Main/System/Battle/BattleObject/BattleObject.cs b/Main/System/Battle/BattleObject/BattleObject.cs
index f115a19..54572e5 100644
--- a/Main/System/Battle/BattleObject/BattleObject.cs
+++ b/Main/System/Battle/BattleObject/BattleObject.cs
@@ -84,7 +84,6 @@
Camp = _camp;
motionBase = new MotionBase();
motionBase.Init(heroGo.GetComponentInChildren<SkeletonGraphic>(true));
- motionBase.onAnimationComplete += OnAnimationComplete;
buffMgr = new BattleObjectBuffMgr();
buffMgr.Init(this);
@@ -120,7 +119,6 @@
public virtual void Destroy()
{
- motionBase.onAnimationComplete -= OnAnimationComplete;
motionBase.Release();
motionBase = null;
@@ -319,12 +317,6 @@
OnDeadAnimationComplete();
_onDeathAnimationComplete?.Invoke();
});
- }
-
- // 涓嶄竴瀹氬彲闈� 鏈夋椂鍊欎細鎻掑叆鍏朵粬鍔ㄤ綔灏卞畬浜�
- protected virtual void OnAnimationComplete(string motionName)
- {
-
}
protected virtual void OnDeadAnimationComplete()
diff --git a/Main/System/Battle/Define/DamageType.cs b/Main/System/Battle/Define/DamageType.cs
index cf04cb2..c0c7ffb 100644
--- a/Main/System/Battle/Define/DamageType.cs
+++ b/Main/System/Battle/Define/DamageType.cs
@@ -4,7 +4,6 @@
// 鑰孉ttackType涓�鑸唬琛ㄧ殑鏄湰娆℃妧鑳界殑浼ゅ椋樿绫诲瀷锛屽鏅�氫激瀹筹紝鏆村嚮浼ゅ銆佹牸鎸°�佸洖琛�绛�
-// 浼よ绫诲瀷锛� 1-鏅�氾紱2-鍥炶锛�3-鍙嶅脊锛�4-娴佽锛�5-鏍兼尅锛�7-鏆村嚮锛�9-闂伩
//
// 101011111
@@ -15,8 +14,6 @@
{
Damage = 2,
Recovery = 4,
- Reflect = 8,
- Bloody = 16,
Block = 32,
Crit = 128,
Dodge = 512
diff --git a/Main/System/Battle/Motion/MotionBase.cs b/Main/System/Battle/Motion/MotionBase.cs
index 7a35dd2..b5fb81b 100644
--- a/Main/System/Battle/Motion/MotionBase.cs
+++ b/Main/System/Battle/Motion/MotionBase.cs
@@ -24,7 +24,6 @@
// 鍔ㄧ敾浜嬩欢
public Action OnAttackAnimationComplete;
public Action OnHitAnimationComplete;
- public Action<string> onAnimationComplete;
private List<Action> runActionList = new List<Action>();
@@ -333,8 +332,6 @@
OnHitAnimationComplete?.Invoke();
PlayAnimation(MotionName.idle, true);
}
-
- onAnimationComplete?.Invoke(animation);
// 鍙皟鐢ㄦ湰娆rackEntry鐨勫洖璋�
if (trackEntryCompleteDict.TryGetValue(trackEntry, out var cb))
diff --git a/Main/System/Battle/RecordPlayer/RecordPlayer.cs b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
index 769415f..b0dc553 100644
--- a/Main/System/Battle/RecordPlayer/RecordPlayer.cs
+++ b/Main/System/Battle/RecordPlayer/RecordPlayer.cs
@@ -28,7 +28,7 @@
public void PlayRecord(RecordAction recordAction)
{
- BattleDebug.LogError("Enqueue record action " + recordAction.GetType());
+ // BattleDebug.LogError("Enqueue record action " + recordAction.GetType());
recordActionQueue.Enqueue(recordAction);
}
@@ -42,7 +42,7 @@
public void InsertRecord(RecordAction recordAction)
{
- BattleDebug.LogError("Insert record action " + recordAction.GetType());
+ // BattleDebug.LogError("Insert record action " + recordAction.GetType());
if (currentRecordAction != null)
{
Queue<RecordAction> tempQueue = new Queue<RecordAction>();
@@ -124,7 +124,7 @@
if (currentRecordAction != null && currentRecordAction.IsFinished())
{
- BattleDebug.LogError("record action " + currentRecordAction.GetType() + " play finished");
+ // BattleDebug.LogError("record action " + currentRecordAction.GetType() + " play finished");
currentRecordAction = null;
isWaitingNextAction = true;
waitTimer = 0f;
@@ -136,7 +136,7 @@
if (recordActionQueue.Count > 0)
{
currentRecordAction = recordActionQueue.Dequeue();
- BattleDebug.LogError("play record action " + currentRecordAction.GetType());
+ // BattleDebug.LogError("play record action " + currentRecordAction.GetType());
}
}
}
diff --git a/Main/System/Battle/Skill/DirectlyHealSkill.cs b/Main/System/Battle/Skill/DirectlyHealSkill.cs
index 0df1017..4324a11 100644
--- a/Main/System/Battle/Skill/DirectlyHealSkill.cs
+++ b/Main/System/Battle/Skill/DirectlyHealSkill.cs
@@ -6,7 +6,6 @@
public class DirectlyHealSkill : SkillBase
{
- protected SkillEffect skillEffect;
public DirectlyHealSkill(BattleObject _caster, SkillConfig _skillCfg,
HB427_tagSCUseSkill _vNetData, List<GameNetPackBasic> _packList, BattleField _battleField)
@@ -16,23 +15,16 @@
}
- // // 鍓嶆憞缁撴潫
- // public override void OnStartSkillFrameEnd()
- // {
- // skillEffect = SkillEffectFactory.CreateSkillEffect(
- // caster,
- // skillConfig,
- // tagUseSkillAttack
- // );
- // if (skillEffect != null)
- // {
- // skillEffect.Play(OnHitTargets);
- // }
- // }
+ protected override void OnHitTargets(int _hitIndex, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> hitList)
+ {
+ base.OnHitTargets(_hitIndex, hitList);
+ }
- // protected override void OnHitTargets(int _healIndex, List<HB427_tagSCUseSkill.tagSCUseSkillHurt> healList)
- // {
- // base.OnHitTargets(_healIndex, healList);
- // }
+ protected override void OnAllAttackMoveFinished()
+ {
+ base.OnAllAttackMoveFinished();
+
+ OnSkillFinished();
+ }
}
\ No newline at end of file
diff --git a/Main/System/Battle/Skill/SkillBase.cs b/Main/System/Battle/Skill/SkillBase.cs
index f51ffe4..cd4c91d 100644
--- a/Main/System/Battle/Skill/SkillBase.cs
+++ b/Main/System/Battle/Skill/SkillBase.cs
@@ -376,7 +376,7 @@
HashSet<BattleObject> highlightList = new HashSet<BattleObject>(battleField.battleObjMgr.GetBattleObjList(tagUseSkillAttack));
highlightList.Add(caster);
-
+ // caster.battleField.skillMask
// 鎶婅繖浜汢O鍏ㄩ珮浜� 鎴栬�呰鎶婇櫎浜嗚繖浜涚殑閮芥斁鍦ㄩ伄缃╁悗闈�
// YYL TODO
}
diff --git a/Main/System/Battle/Skill/SkillFactory.cs b/Main/System/Battle/Skill/SkillFactory.cs
index 3654df9..c8af9c6 100644
--- a/Main/System/Battle/Skill/SkillFactory.cs
+++ b/Main/System/Battle/Skill/SkillFactory.cs
@@ -60,9 +60,9 @@
// 鍏堝疄鐜颁竴涓敾鍑荤殑 鍚庣画鏈夊啀鎱㈡參澧炲姞
skill = new DirectlyDamageSkill(_caster, skillConfig, vNetData, packList, battleField);
break;
- // case 2:
- // // skill = new DirectlyHealSkill(_skillConfig);
- // break;
+ case 2:
+ skill = new DirectlyHealSkill(_caster, skillConfig, vNetData, packList, battleField);
+ break;
// case 3:
// case 4:
// case 5:
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs
index 6f74a30..2e3cb94 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BezierBulletCurve.cs
@@ -9,8 +9,8 @@
private Vector2 control;
public BezierBulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer effectPlayer,
- RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
- : base(caster, skillConfig, effectPlayer, target, tagUseSkillAttack, onHit) { }
+ RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, int bulletIndex, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
+ : base(caster, skillConfig, effectPlayer, target, tagUseSkillAttack, bulletIndex, onHit) { }
public override void Reset()
{
@@ -36,7 +36,7 @@
if (t >= 1f)
{
finished = true;
- onHit?.Invoke(0, hurts);
+ onHit?.Invoke(mBulletIndex, hurts);
}
}
}
\ No newline at end of file
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs
index 9c1568e..f935e49 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BounceBulletCurve.cs
@@ -15,8 +15,8 @@
private float bounceElapsed = 0f;
public BounceBulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer effectPlayer,
- RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
- : base(caster, skillConfig, effectPlayer, target, tagUseSkillAttack, onHit)
+ RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, int bulletIndex, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
+ : base(caster, skillConfig, effectPlayer, target, tagUseSkillAttack, bulletIndex, onHit)
{
this.hurtList = new List<HB427_tagSCUseSkill.tagSCUseSkillHurt>(tagUseSkillAttack.HurtList);
}
@@ -51,7 +51,7 @@
if (t >= 1f)
{
// 鍛戒腑褰撳墠鐩爣
- onHit?.Invoke(curIndex, hurtList);
+ onHit?.Invoke(mBulletIndex, hurtList);
curIndex++;
if (curIndex >= hurtList.Count)
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
index 8e92c98..cf68b6b 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BulletCurve.cs
@@ -16,9 +16,12 @@
protected float duration = 0f;
protected float elapsed = 0f;
+ protected int mBulletIndex;
+
protected List<HB427_tagSCUseSkill.tagSCUseSkillHurt> hurts = new List<HB427_tagSCUseSkill.tagSCUseSkillHurt>();
- public BulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer bulletEffect, RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
+ public BulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer bulletEffect, RectTransform target,
+ HB427_tagSCUseSkill tagUseSkillAttack, int bulletIndex, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
{
this.caster = caster;
this.skillConfig = skillConfig;
@@ -27,6 +30,7 @@
this.onHit = onHit;
this.bulletTrans = bulletEffect.transform as RectTransform;
this.hurts = tagUseSkillAttack.HurtList.ToList();
+ this.mBulletIndex = bulletIndex;
// 璁剧疆bulletTrans鍧愭爣涓篶aster.heroRectTrans鐨勪笘鐣屽潗鏍囪浆鎹㈠埌bulletTrans鐖惰妭鐐逛笅鐨勬湰鍦板潗鏍�
if (bulletTrans != null && caster.heroRectTrans != null)
@@ -69,7 +73,7 @@
protected virtual void ReachTarget()
{
finished = true;
- onHit?.Invoke(0, hurts);
+ onHit?.Invoke(mBulletIndex, hurts);
caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.BulletEffectId, bulletEffect);
}
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/BulletCurveFactory.cs b/Main/System/Battle/SkillEffect/BulletCurve/BulletCurveFactory.cs
index 7d1e460..7da9f26 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/BulletCurveFactory.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/BulletCurveFactory.cs
@@ -16,25 +16,26 @@
BattleEffectPlayer bulletEffect,
RectTransform target,
HB427_tagSCUseSkill tagUseSkillAttack,
+ int bulletIndex,
Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
{
BulletCurve curve = null;
switch (skillConfig.BulletPath)
{
case 1: // 鐩寸嚎娑堝け浜庣洰鏍�
- curve = new StraightBulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, onHit);
+ curve = new StraightBulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, bulletIndex, onHit);
break;
case 2: // 鐩寸嚎璐┛娑堝け鍦ㄥ睆骞曞
- curve = new PenetrateBulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, onHit);
+ curve = new PenetrateBulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, bulletIndex, onHit);
break;
case 3: // 鎶涚墿绾垮姬绾�
- curve = new BezierBulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, onHit);
+ curve = new BezierBulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, bulletIndex, onHit);
break;
case 4: // 寮瑰皠
- curve = new BounceBulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, onHit);
+ curve = new BounceBulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, bulletIndex, onHit);
break;
default:
- curve = new BulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, onHit);
+ curve = new BulletCurve(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, bulletIndex, onHit);
break;
}
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs
index 9cf08cd..35ace1a 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/PenetrateBulletCurve.cs
@@ -9,8 +9,8 @@
private Vector2 outPos; // 灞忓箷澶栧欢闀跨偣锛堟湰鍦板潗鏍囷級
private bool hitTriggered = false; // 鏄惁宸茶Е鍙憃nHit
- public PenetrateBulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer effectPlayer, RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
- : base(caster, skillConfig, effectPlayer, target, tagUseSkillAttack, onHit) { }
+ public PenetrateBulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer effectPlayer, RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, int bulletIndex, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
+ : base(caster, skillConfig, effectPlayer, target, tagUseSkillAttack, bulletIndex, onHit) { }
/// <summary>
/// 鍒濆鍖栧脊閬撳弬鏁�
@@ -52,7 +52,7 @@
if (!hitTriggered)
{
hitTriggered = true;
- onHit?.Invoke(0, hurts);
+ onHit?.Invoke(mBulletIndex, hurts);
}
}
bulletTrans.anchoredPosition = pos;
diff --git a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
index 5079d3b..d0933fb 100644
--- a/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
+++ b/Main/System/Battle/SkillEffect/BulletCurve/StraightBulletCurve.cs
@@ -7,9 +7,9 @@
private Vector2 start;
private Vector2 end;
- public StraightBulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer bulletEffect, RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
- : base(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, onHit)
- {
+ public StraightBulletCurve(BattleObject caster, SkillConfig skillConfig, BattleEffectPlayer bulletEffect, RectTransform target, HB427_tagSCUseSkill tagUseSkillAttack, int bulletIndex, Action<int, List<HB427_tagSCUseSkill.tagSCUseSkillHurt>> onHit)
+ : base(caster, skillConfig, bulletEffect, target, tagUseSkillAttack, bulletIndex, onHit)
+ {
}
@@ -50,7 +50,7 @@
if (t >= 1f)
{
finished = true;
- onHit?.Invoke(0, hurts);
+ onHit?.Invoke(mBulletIndex, hurts);
}
}
}
\ No newline at end of file
diff --git a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
index 3ab4d1b..22d88ed 100644
--- a/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
+++ b/Main/System/Battle/SkillEffect/BulletSkillEffect.cs
@@ -13,6 +13,7 @@
protected List<BulletCurve> bulletCurves = new List<BulletCurve>();
+
public BulletSkillEffect(SkillConfig _skillConfig, BattleObject _caster, HB427_tagSCUseSkill _tagUseSkillAttack)
: base(_skillConfig, _caster, _tagUseSkillAttack)
{
@@ -33,7 +34,7 @@
Debug.LogError("鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID);
return;
}
- ShotToTarget(targetObject);
+ ShotToTarget(targetObject, index);
}
// 鏅�氱殑鍋氭硶 鍖哄垎鎵撳悜闃佃惀鎴栬�呮墦鍚戜釜浣�
else
@@ -42,29 +43,29 @@
if (skillConfig.Scattering == 1)
{
// 鏁e皠
- ShotEachTargets();
+ ShotEachTargets(index);
}
else
{
switch (skillConfig.TagAim)
{
case 0:
- AllAreaShoting();
+ AllAreaShoting(index);
break;
case 1:
- OneTargetShoting();
+ OneTargetShoting(index);
break;
case 2:
- FrontRowShoting();
+ FrontRowShoting(index);
break;
case 3:
- BackRowShoting();
+ BackRowShoting(index);
break;
case 4:
- VerticalRowShoting();
+ VerticalRowShoting(index);
break;
case 5:
- SelfShoting();
+ SelfShoting(index);
break;
default:
Debug.LogError("瀛愬脊鐗规晥娌℃湁閰嶇疆姝g‘鐨凾agAim锛屽己鍒剁粨鏉熷瓙寮圭壒鏁� TagAim: " + skillConfig.TagAim);
@@ -76,23 +77,23 @@
}
// 0 鍏ㄩ儴鑼冨洿锛�
- private void AllAreaShoting()
+ private void AllAreaShoting(int index)
{
if (skillConfig.TagCount == 0 || skillConfig.TagCount >= 6)
{
// 鑻agCount鐩爣涓暟涓�0鎴�6锛屾牴鎹甌agFriendly鏁屾垜閰嶇疆锛屼唬琛ㄤ綔鐢ㄤ簬鏁屾柟鍏ㄤ綋鎴栨垜鏂瑰叏浣擄紝姝ゆ椂涓荤洰鏍囦负鏁屾垜绔欎綅涓殑2鍙蜂綅缃�
BattleCamp battleCamp = skillConfig.TagFriendly != 0 ? caster.Camp : caster.GetEnemyCamp();
- ShotToIndex(battleCamp, 1);
+ ShotToIndex(battleCamp, 1, index);
}
else
{
// 鑻agCount鐩爣涓暟涓�1~5涓紝浠h〃闅忔満浣滅敤浜庢晫鏂规垨鎴戞柟x涓灏嗭紝姝ゆ椂鎵�鏈夎闅忔満鍒扮殑瀵硅薄閮戒负涓荤洰鏍囷紙鏂芥硶浣嶇疆浼氱敤瀹㈡埛绔厤缃級
- ShotEachTargets();
+ ShotEachTargets(index);
}
}
// 1 瀵逛綅锛�
- private void OneTargetShoting()
+ private void OneTargetShoting(int index)
{
// 榛樿鍙��1涓紝瀵逛綅瑙勫垯涓篈1浼樺厛鎵揃1锛孉2浼樺厛鎵揃2锛孉3浼樺厛鎵揃3锛屽浣嶇洰鏍囨浜℃椂锛屼紭鍏堝墠鎺掞紝
// 姣斿B2宸茬粡姝讳骸锛岄偅涔圓2灏嗕紭鍏堟墦B1锛屽墠鎺�1銆�2銆�3鍙蜂綅缃叏閮ㄦ浜′箣鍚庢墠寮�濮嬮�夋嫨鍚庢帓4銆�5銆�6鍙蜂綅缃紝
@@ -110,11 +111,11 @@
Debug.LogError("鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID);
return;
}
- ShotToTarget(targetObject);
+ ShotToTarget(targetObject, index);
}
// 2 鍓嶆帓锛�
- private void FrontRowShoting()
+ private void FrontRowShoting(int index)
{
// 1銆�2銆�3鍙蜂綅涓哄墠鎺掞紝榛樿2鍙蜂綅缃负涓荤洰鏍囷紝褰�1銆�2銆�3鍙蜂綅缃鑹插叏閮ㄦ浜★紝鍓嶆帓灏嗘浛鎹㈡垚鍚庢帓锛�5鍙蜂綅缃彉鏇翠负涓荤洰鏍囷紝
// 鑻ラ厤缃甌agAffect缁嗗垎鐩爣锛屼笖浜烘暟灏忎簬3锛屽垯鎵�鏈夎閫夋嫨鐩爣鍧囦负涓荤洰鏍囷紙鏂芥硶浣嶇疆浼氱敤瀹㈡埛绔厤缃級
@@ -124,7 +125,7 @@
if (skillConfig.TagAffect != 0 && skillConfig.TagAffect != 3 && skillConfig.TagCount < 3)
{
- ShotEachTargets();
+ ShotEachTargets(index);
}
else
{
@@ -158,19 +159,19 @@
targetIndex = 1;
}
- ShotToIndex(battleCamp, targetIndex);
+ ShotToIndex(battleCamp, targetIndex, index);
}
}
- private void ShotToIndex(BattleCamp camp, int targetIndex)
+ private void ShotToIndex(BattleCamp camp, int targetIndex, int bulletIndex)
{
RectTransform targetTransform = caster.battleField.GetTeamNode(camp, targetIndex);
BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
RectTransform effectTrans = effectPlayer.transform as RectTransform;
- var bulletCurve = BulletCurveFactory.CreateBulletCurve(caster, skillConfig, effectPlayer, targetTransform, tagUseSkillAttack, (index, hitList) =>
+ var bulletCurve = BulletCurveFactory.CreateBulletCurve(caster, skillConfig, effectPlayer, targetTransform, tagUseSkillAttack, bulletIndex, (index, hitList) =>
{
if (isFinish)
return;
@@ -205,7 +206,7 @@
}
// 3 鍚庢帓锛�
- private void BackRowShoting()
+ private void BackRowShoting(int index)
{
// 4銆�5銆�6鍙蜂綅涓哄悗鎺掞紝榛樿5鍙蜂綅缃负涓荤洰鏍囷紝褰�4銆�5銆�6鍙蜂綅缃鑹插叏閮ㄦ浜★紝鍚庢帓鎺掑皢鏇挎崲鎴愬墠鎺掞紝2鍙蜂綅缃彉鏇翠负涓荤洰鏍囷紝
// 鑻ラ厤缃甌agAffect缁嗗垎鐩爣锛屼笖浜烘暟灏忎簬3锛屽垯鎵�鏈夎閫夋嫨鐩爣鍧囦负涓荤洰鏍囷紙鏂芥硶浣嶇疆浼氱敤瀹㈡埛绔厤缃級
@@ -215,7 +216,7 @@
if (skillConfig.TagAffect != 0 && skillConfig.TagAffect != 3 && skillConfig.TagCount < 3)
{
- ShotEachTargets();
+ ShotEachTargets(index);
}
else
{
@@ -249,12 +250,12 @@
targetIndex = 4;
}
- ShotToIndex(battleCamp, targetIndex);
+ ShotToIndex(battleCamp, targetIndex, index);
}
}
// 4 绾垫帓锛�
- private void VerticalRowShoting()
+ private void VerticalRowShoting(int index)
{
// 绾垫帓鍒嗗埆涓�1銆�4锛�2銆�5锛�3銆�6锛屼笁缁勭旱鎺掞紝鎸夊浣嶈鍒欓�夋嫨锛岄粯璁�1鍙枫��2鍙锋垨3鍙蜂负涓荤洰鏍囷紝鍓嶆帓1銆�2銆�3鍙蜂綅缃叏閮ㄦ瀹屽悗锛�4鍙枫��5鍙锋垨6鍙蜂负涓荤洰鏍�
BattleCamp battleCamp = skillConfig.TagFriendly != 0 ? caster.Camp : caster.GetEnemyCamp();
@@ -274,7 +275,7 @@
if (minimumIndex != int.MaxValue)
{
- ShotToIndex(battleCamp, minimumIndex);
+ ShotToIndex(battleCamp, minimumIndex, index);
}
else
{
@@ -286,17 +287,17 @@
}
// 5 鑷繁锛�
- private void SelfShoting()
+ private void SelfShoting(int index)
{
// 榛樿鍙�夎嚜宸憋紝鑷繁涓轰富鐩爣
- ShotToIndex(caster.Camp, caster.teamHero.positionNum);
+ ShotToIndex(caster.Camp, caster.teamHero.positionNum, index);
}
- protected void ShotToTarget(BattleObject target)
+ protected void ShotToTarget(BattleObject target, int bulletIndex)
{
BattleEffectPlayer effectPlayer = caster.battleField.battleEffectMgr.PlayEffect(caster.ObjID, skillConfig.BulletEffectId, caster.heroRectTrans, caster.Camp);
- var bulletCurve = BulletCurveFactory.CreateBulletCurve(caster, skillConfig, effectPlayer, target.heroRectTrans, tagUseSkillAttack, (index, hitList) =>
+ var bulletCurve = BulletCurveFactory.CreateBulletCurve(caster, skillConfig, effectPlayer, target.heroRectTrans, tagUseSkillAttack, bulletIndex, (index, hitList) =>
{
if (isFinish)
return;
@@ -320,9 +321,11 @@
onHit?.Invoke(index, hitList);
// 鍑讳腑灏遍攢姣佸瓙寮�
caster.battleField.battleEffectMgr.RemoveEffect(skillConfig.BulletEffectId, effectPlayer);
-
- // 鎾斁瀛愬脊鐖嗙偢鐗规晥
- isFinish = true;
+
+ if (bulletIndex >= skillConfig.ActiveFrames.Length - 1)
+ {
+ isFinish = true;
+ }
});
bulletCurves.Add(bulletCurve);
@@ -344,7 +347,7 @@
}
}
- private void ShotEachTargets()
+ private void ShotEachTargets(int index)
{
for (int i = 0; i < tagUseSkillAttack.HurtList.Length; i++)
{
@@ -355,7 +358,7 @@
Debug.LogError("鐗规晥鐩爣涓虹┖ target == null ObjId : " + hurt.ObjID);
continue;
}
- ShotToTarget(target);
+ ShotToTarget(target, index);
}
}
diff --git a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
index fe46ec2..eebee91 100644
--- a/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
+++ b/Main/System/Battle/UIComp/BattleHeroInfoBar.cs
@@ -135,7 +135,7 @@
sliderHp.value = ((float)toHp) / ((float)maxHp);
}
- BattleDebug.LogError("update hp from " + fromHp + " to " + toHp + " maxHp " + maxHp);
+ // BattleDebug.LogError("update hp from " + fromHp + " to " + toHp + " maxHp " + maxHp);
}
public void UpdateXP(long fromXp, long toXp, long maxXp, bool tween = true)
@@ -157,7 +157,7 @@
sliderXp.value = ((float)toXp) / ((float)maxXp);
}
- BattleDebug.LogError("update xp from " + fromXp + " to " + toXp + " maxXp " + maxXp);
+ // BattleDebug.LogError("update xp from " + fromXp + " to " + toXp + " maxXp " + maxXp);
}
public void Run()
--
Gitblit v1.8.0