DESKTOP-FB72PO8\Administrator 1 mês atrás
pai
commit
987a71a872
32 arquivos alterados com 2527 adições e 671 exclusões
  1. 28 0
      Assets/Art/ArtHero/FaBao/fb_linglongta.prefab
  2. 31 3
      Assets/Art/VFX/FXPrefabs/fx_hudun.prefab
  3. 3 0
      Assets/Scripts/GameLogic/Combat/Hero/Barrier.meta
  4. 9 0
      Assets/Scripts/GameLogic/Combat/Hero/Barrier/BarrierEntityMono.cs
  5. 3 0
      Assets/Scripts/GameLogic/Combat/Hero/Barrier/BarrierEntityMono.cs.meta
  6. 20 0
      Assets/Scripts/GameLogic/Combat/Hero/Barrier/IBarrier.cs
  7. 3 0
      Assets/Scripts/GameLogic/Combat/Hero/Barrier/IBarrier.cs.meta
  8. 79 0
      Assets/Scripts/GameLogic/Combat/Hero/Barrier/ShieldsBarrier.cs
  9. 3 0
      Assets/Scripts/GameLogic/Combat/Hero/Barrier/ShieldsBarrier.cs.meta
  10. 20 2
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs
  11. 4 1
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroGameObject.cs
  12. 1 0
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroInfo.cs
  13. 18 3
      Assets/Scripts/GameLogic/Combat/Hero/CombatHeroTimeLineControl.cs
  14. 11 0
      Assets/Scripts/GameLogic/Combat/Hero/ShowBaiscEntity.cs
  15. 29 1
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/MagicSkillBasic.cs
  16. 5 5
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S901001.cs
  17. 16 0
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/MagicAttShowBasic.cs
  18. 2 6
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/StraightLineShow.cs
  19. 106 0
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/XiaoShiAndShow.cs
  20. 3 0
      Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/XiaoShiAndShow.cs.meta
  21. 57 1
      Assets/Scripts/GameLogic/Paritcle/ParitcleLogic/FxParabolaBulletLogic.cs
  22. 3 0
      Assets/Scripts/GameTimeLine/CustomizeTime/TimeLineMagicWeaponShowPointAsset.meta
  23. 6 0
      Assets/Scripts/GameTimeLine/CustomizeTime/TimeLineMagicWeaponShowPointAsset/TimeLineMagicWeaponShowPointAsset.cs
  24. 3 0
      Assets/Scripts/GameTimeLine/CustomizeTime/TimeLineMagicWeaponShowPointAsset/TimeLineMagicWeaponShowPointAsset.cs.meta
  25. 26 0
      Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogic/TimeLineMagicWeaponShowPointLogic.cs
  26. 3 0
      Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogic/TimeLineMagicWeaponShowPointLogic.cs.meta
  27. 5 0
      Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TriggerData.cs
  28. 14 0
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLienData.cs
  29. 39 0
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineMagicWeaponShowPointSerializtion.cs
  30. 3 0
      Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineMagicWeaponShowPointSerializtion.cs.meta
  31. 0 0
      Assets/StreamingAssets/assetConfig.txt
  32. 1974 649
      UserSettings/Layouts/default-2022.dwlt

+ 28 - 0
Assets/Art/ArtHero/FaBao/fb_linglongta.prefab

@@ -470,6 +470,10 @@ PlayableDirector:
     value: {fileID: 0}
   - key: {fileID: 7513549724179277356, guid: a2d171fd27c45b04fb6813e9b66ad941, type: 2}
     value: {fileID: 5086437659844747645}
+  - key: {fileID: 5946645958756819507, guid: a2d171fd27c45b04fb6813e9b66ad941, type: 2}
+    value: {fileID: 5086437659844747645}
+  - key: {fileID: -7958483076089108760, guid: a2d171fd27c45b04fb6813e9b66ad941, type: 2}
+    value: {fileID: 5086437659844747645}
   m_ExposedReferences:
     m_References:
     - d4fc1ec3b24009c4f96fe610eb65b484: {fileID: 2297460633109515176}
@@ -1254,6 +1258,14 @@ PrefabInstance:
     serializedVersion: 3
     m_TransformParent: {fileID: 7671507229942896092}
     m_Modifications:
+    - target: {fileID: 136092236900272731, guid: f5e13679e00b8694d96ef92846c8277d, type: 3}
+      propertyPath: randomSeed
+      value: 8766
+      objectReference: {fileID: 0}
+    - target: {fileID: 136092236900272731, guid: f5e13679e00b8694d96ef92846c8277d, type: 3}
+      propertyPath: autoRandomSeed
+      value: 0
+      objectReference: {fileID: 0}
     - target: {fileID: 1683851312769769996, guid: f5e13679e00b8694d96ef92846c8277d, type: 3}
       propertyPath: m_LocalPosition.x
       value: 0
@@ -1298,6 +1310,22 @@ PrefabInstance:
       propertyPath: m_Name
       value: fx_fb_ta_show
       objectReference: {fileID: 0}
+    - target: {fileID: 6543690434314661893, guid: f5e13679e00b8694d96ef92846c8277d, type: 3}
+      propertyPath: randomSeed
+      value: 8766
+      objectReference: {fileID: 0}
+    - target: {fileID: 6543690434314661893, guid: f5e13679e00b8694d96ef92846c8277d, type: 3}
+      propertyPath: autoRandomSeed
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 8907831983386247659, guid: f5e13679e00b8694d96ef92846c8277d, type: 3}
+      propertyPath: randomSeed
+      value: 8766
+      objectReference: {fileID: 0}
+    - target: {fileID: 8907831983386247659, guid: f5e13679e00b8694d96ef92846c8277d, type: 3}
+      propertyPath: autoRandomSeed
+      value: 0
+      objectReference: {fileID: 0}
     m_RemovedComponents: []
     m_RemovedGameObjects: []
     m_AddedGameObjects: []

+ 31 - 3
Assets/Art/VFX/FXPrefabs/fx_hudun.prefab

@@ -12,6 +12,7 @@ GameObject:
   - component: {fileID: 7562968448241787085}
   - component: {fileID: 5647282952120230417}
   - component: {fileID: 7167101787697011633}
+  - component: {fileID: 6342831511097430986}
   m_Layer: 0
   m_HasEditorInfo: 1
   m_Name: fx_hudun
@@ -30,7 +31,7 @@ Transform:
   serializedVersion: 2
   m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
   m_LocalPosition: {x: 0, y: 0, z: 0}
-  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_LocalScale: {x: 1.5, y: 1.5, z: 1.5}
   m_ConstrainProportionsScale: 0
   m_Children:
   - {fileID: 7613937774641453127}
@@ -4851,12 +4852,39 @@ SphereCollider:
     serializedVersion: 2
     m_Bits: 0
   m_LayerOverridePriority: 0
-  m_IsTrigger: 0
+  m_IsTrigger: 1
   m_ProvidesContacts: 0
   m_Enabled: 1
   serializedVersion: 3
   m_Radius: 0.8836967
   m_Center: {x: 0, y: 0, z: -0.116303325}
+--- !u!54 &6342831511097430986
+Rigidbody:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2718974786784947163}
+  serializedVersion: 4
+  m_Mass: 1
+  m_Drag: 0
+  m_AngularDrag: 0.05
+  m_CenterOfMass: {x: 0, y: 0, z: 0}
+  m_InertiaTensor: {x: 1, y: 1, z: 1}
+  m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_IncludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_ExcludeLayers:
+    serializedVersion: 2
+    m_Bits: 0
+  m_ImplicitCom: 1
+  m_ImplicitTensor: 1
+  m_UseGravity: 1
+  m_IsKinematic: 1
+  m_Interpolate: 0
+  m_Constraints: 0
+  m_CollisionDetection: 0
 --- !u!1 &7725975221806724251
 GameObject:
   m_ObjectHideFlags: 0
@@ -4966,7 +4994,7 @@ ParticleSystem:
       m_RotationOrder: 4
   moveWithTransform: 0
   moveWithCustomTransform: {fileID: 0}
-  scalingMode: 1
+  scalingMode: 0
   randomSeed: 0
   InitialModule:
     serializedVersion: 3

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Hero/Barrier.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 277300fc126949fbb0075effa76eb83d
+timeCreated: 1743390379

+ 9 - 0
Assets/Scripts/GameLogic/Combat/Hero/Barrier/BarrierEntityMono.cs

@@ -0,0 +1,9 @@
+using UnityEngine;
+
+namespace GameLogic.Combat.Hero
+{
+    public class BarrierEntityMono : MonoBehaviour
+    {
+        public IBarrier Barrier;
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Hero/Barrier/BarrierEntityMono.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 34b7f7d918f9407da5be0a516d53d291
+timeCreated: 1743390321

+ 20 - 0
Assets/Scripts/GameLogic/Combat/Hero/Barrier/IBarrier.cs

@@ -0,0 +1,20 @@
+using System;
+using Core.Triiger;
+
+namespace GameLogic.Combat.Hero
+{
+    public interface IBarrier: IDisposable
+    {
+        /// <summary>
+        /// 拥有
+        /// </summary>
+        ShowBaiscEntity Own { get; set; }
+
+        /// <summary>
+        /// 碰撞信息,释放拦截
+        /// </summary>
+        /// <param name="triggerEntity"></param>
+        /// <returns></returns>
+        bool CollideTriiger(ITriggerEntity triggerEntity);
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Hero/Barrier/IBarrier.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: fa68fb728f87459da8bac30ccc54e462
+timeCreated: 1743390398

+ 79 - 0
Assets/Scripts/GameLogic/Combat/Hero/Barrier/ShieldsBarrier.cs

@@ -0,0 +1,79 @@
+using Core.Triiger;
+using Fort23.Common;
+using Fort23.Core;
+using Fort23.UTool;
+using UnityEngine;
+
+namespace GameLogic.Combat.Hero
+{
+    public class ShieldsBarrier : IBarrier
+    {
+        public ShowBaiscEntity Own { get; set; }
+        public GameObjectPool ShieldsFx;
+
+        private ParticleSystem[] allParticleSystem;
+
+        public async CTask Init(ShowBaiscEntity combatHeroEntity)
+        {
+            Own = combatHeroEntity;
+            GameObjectPool combatParticleSystemPool =
+                await GObjectPool.Instance.FetchAsync<GameObjectPool>("fx_hudun", null);
+            ShieldsFx = combatParticleSystemPool;
+            BarrierEntityMono barrierEntityMono = combatParticleSystemPool.own.GetComponent<BarrierEntityMono>();
+            if (barrierEntityMono == null)
+            {
+                barrierEntityMono =
+                    combatParticleSystemPool.own.AddComponent<BarrierEntityMono>();
+            }
+
+            barrierEntityMono.Barrier = this;
+
+            SpecialDotInfo specialDotInfo =
+                combatHeroEntity.GetMainHotPoin<CombatHeroHitPoint>(true).GetSpecialDotInfo("hitpos");
+            ShieldsFx.own.transform.SetParent(specialDotInfo.targetTran);
+            ShieldsFx.own.transform.localPosition = Vector3.zero;
+            ShieldsFx.own.transform.localEulerAngles = Vector3.zero;
+            ShieldsFx.own.transform.localScale = Vector3.one * 1.5f;
+            ShieldsFx.SetActive(true);
+            allParticleSystem = combatParticleSystemPool.own.transform.GetComponentsInChildren<ParticleSystem>();
+        }
+
+        public void Play()
+        {
+            ShieldsFx.ActiveObj();
+            for (int i = 0; i < allParticleSystem.Length; i++)
+            {
+                allParticleSystem[i].Stop();
+                allParticleSystem[i].Play();
+            }
+        }
+
+        /// <summary>
+        /// 破裂
+        /// </summary>
+        public async CTask Rupture()
+        {
+            ParticleSystemPool particleSystemPool =
+                await GObjectPool.Instance.FetchAsync<ParticleSystemPool>("fx_hudun_po", null);
+            particleSystemPool.gameObject.transform.position = ShieldsFx.own.transform.position;
+        }
+
+        public bool CollideTriiger(ITriggerEntity triggerEntity)
+        {
+            if (Own.CurrCombatHeroInfo.Shield > 0)
+            {
+                return false;
+            }
+
+            return true;
+        }
+
+        public void Dispose()
+        {
+            GObjectPool.Instance.Recycle(ShieldsFx);
+            allParticleSystem = null;
+            ShieldsFx = null;
+            Own = null;
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Hero/Barrier/ShieldsBarrier.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: c4036b51d6e842e8bffa90ee789445a9
+timeCreated: 1743391419

+ 20 - 2
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroEntity.cs

@@ -2,6 +2,7 @@ using System.Collections;
 using System.Collections.Generic;
 using Animancer;
 using Common.Utility.CombatEvent;
+using Core.Utility;
 using Fort23.Common;
 using Fort23.Core;
 using Fort23.UTool;
@@ -145,7 +146,8 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
 
         CombatHeroSkillControl = new CombatHeroSkillControl();
         await CombatHeroSkillControl.Init(this);
-
+        CurrCombatHeroInfo.Shield = (EncryptionLong)300;
+        await InitShieldsFx();
         AnimancerComponent animancerComponent = poolInterface.own.GetComponent<AnimancerComponent>();
         combatHeroAnimtion = new CombatHeroAnimtion();
         // if (animancerComponent != null)
@@ -334,7 +336,21 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
             }
         }
 
-        CurrCombatHeroInfo.hp -= harmReturnInfo.att;
+        if (harmReturnInfo.triggerData.IBarrier != null && ShieldsBarrier != null)
+        {
+            ShieldsBarrier.Play();
+            CurrCombatHeroInfo.Shield -= harmReturnInfo.att;
+            if (CurrCombatHeroInfo.Shield <= 0)
+            {
+                ShieldsBarrier.Rupture();
+            }
+        }
+        else
+        {
+            CurrCombatHeroInfo.hp -= harmReturnInfo.att;
+        }
+
+
         UpdateHarmText(harmReturnInfo);
         if (combatHeroGameObject.HeroGPUMono != null)
         {
@@ -405,6 +421,8 @@ public class CombatHeroEntity : ShowBaiscEntity, ITimeLineAnimtion, ITimeLineGet
         combatHeroTimeLineControl.Dispose();
         combatHeroAnimtion.Dispose();
         CloseLoopFx();
+        ShieldsBarrier?.Dispose();
+        ShieldsBarrier = null;
     }
 
     private void ProDormancyObj()

+ 4 - 1
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroGameObject.cs

@@ -130,7 +130,10 @@ public class CombatHeroGameObject : IDisposable
     {
         GameObjectPool.own.transform.position = pos;
     }
-
+    public void SetScale(Vector3 size)
+    {
+        GameObjectPool.own.transform.localScale = size;
+    }
     public T GetILifetCycleHitPoint<T>(string hitPoinName, bool isStandType, bool isIgnoreHind)
         where T : ILifetCycleHitPoint
     {

+ 1 - 0
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroInfo.cs

@@ -36,6 +36,7 @@ public class CombatHeroInfo
     public HeroPowerUpConfig powerUpConfig;
     public MonsterPowerUpConfig MonsterPowerUpConfig;
     public HeroPromoteConfig promoteConfig;
+    public EncryptionLong Shield;
     /// <summary>
     /// 添加的攻击速度比例%
     /// </summary>

+ 18 - 3
Assets/Scripts/GameLogic/Combat/Hero/CombatHeroTimeLineControl.cs

@@ -54,7 +54,7 @@ namespace GameLogic.Combat.Hero
                         .GetTimeLineEventLogicGroup<TimeLineEventLogicGroupBasic>(groupName, null);
                 if (timeLineEventLogicGroup != null)
                 {
-                    timeLineEventLogicGroup.SetCombatInfo(combatHeroEntity, null, null, new TriggerData(), null,0);
+                    timeLineEventLogicGroup.SetCombatInfo(combatHeroEntity, null, null, new TriggerData(), null, 0);
                     AddEventLogicGroup(timeLineEventLogicGroup);
                 }
 
@@ -64,6 +64,23 @@ namespace GameLogic.Combat.Hero
             return null;
         }
 
+        public T GetTimeLineEventInfo<T>(string groupName) where T : class
+        {
+            for (_addTimeLienDatas.Begin(); _addTimeLienDatas.Next();)
+            {
+                T timeLineEventLogicGroup =
+                    _addTimeLienDatas.Value
+                        .GetTimeLineEventInfo<T>(groupName, null);
+
+                if (timeLineEventLogicGroup != null)
+                {
+                    return timeLineEventLogicGroup;
+                }
+            }
+
+            return null;
+        }
+
         public T GetTimeLineEventLogicGroup<T>(string groupName) where T : TimeLineEventLogicGroupBasic, new()
         {
             for (_addTimeLienDatas.Begin(); _addTimeLienDatas.Next();)
@@ -76,8 +93,6 @@ namespace GameLogic.Combat.Hero
                 {
                     return timeLineEventLogicGroup;
                 }
-
-              
             }
 
             return null;

+ 11 - 0
Assets/Scripts/GameLogic/Combat/Hero/ShowBaiscEntity.cs

@@ -1,5 +1,6 @@
 using Fort23.Common;
 using Fort23.Core;
+using Fort23.UTool;
 using GameLogic.Combat.Buff;
 using UnityEngine;
 using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventinterface;
@@ -23,6 +24,9 @@ namespace GameLogic.Combat.Hero
         public BuffControl BuffControl;
         public BetterList<CombatParticleSystemPool> heroLoopParticle = new BetterList<CombatParticleSystemPool>();
 
+
+        public ShieldsBarrier ShieldsBarrier;
+
         public override void ActiveObj()
         {
         }
@@ -31,6 +35,13 @@ namespace GameLogic.Combat.Hero
         {
         }
 
+        public async CTask InitShieldsFx()
+        {
+            ShieldsBarrier = new ShieldsBarrier();
+            await ShieldsBarrier.Init(this);
+            // ShieldsFx.SetActive(false);
+        }
+
         public virtual Vector3 dotPos
         {
             get { return combatHeroGameObject.position; }

+ 29 - 1
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/MagicSkillBasic.cs

@@ -1,18 +1,46 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+
 namespace GameLogic.Combat.Skill.MagicSkill
 {
     public class MagicSkillBasic : SkillBasic
     {
         protected MagicAttShowBasic magicAttShowBasic;
 
-        
+
         protected override void ProUseSkill()
         {
             _finishTimeLineGroupName = "-1";
             ProMagicUseSkill();
         }
+
+        public MagicAttShowBasic InitMagicAttShowBasic(CombatHeroEntity target,System.Action finishCallBack)
+        {
+            MagicAttShowBasic magicAttShowBasic = null;
+            TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
+                CombatHeroEntity.combatHeroTimeLineControl.GetTimeLineEventLogicGroup<TimeLineEventLogicGroupBasic>(
+                    "sk1_xiaoshi");
+            if (timeLineEventLogicGroupBasic != null)
+            {
+                XiaoShiAndShow xiaoShiAndShow = new XiaoShiAndShow();
+                xiaoShiAndShow.Init(this);
+                magicAttShowBasic = xiaoShiAndShow;
+            }
+            else
+            {
+                StraightLineShow straightLineShow = new StraightLineShow();
+
+                straightLineShow.Init(this);
+                magicAttShowBasic = straightLineShow;
+            }
+            magicAttShowBasic.SetInfo(target, finishCallBack);
+
+            return magicAttShowBasic;
+        }
+
         protected virtual void ProMagicUseSkill()
         {
         }
+
         protected void SetMagicAttShowBasic(MagicAttShowBasic magicAttShowBasic)
         {
             this.magicAttShowBasic = magicAttShowBasic;

+ 5 - 5
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/S901001.cs

@@ -15,8 +15,8 @@ namespace GameLogic.Combat.Skill.MagicSkill
 
         protected override void ProMagicUseSkill()
         {
-            StraightLineShow straightLineShow = new StraightLineShow();
-            straightLineShow.Init(this);
+            // StraightLineShow straightLineShow = new StraightLineShow();
+            // straightLineShow.Init(this);
             CombatHeroEntity[] allHero =
                 CombatController.currActiveCombat.CombatHeroController.GetHero(!CombatHeroEntity.IsEnemy);
             if (allHero == null || allHero.Length <= 0)
@@ -26,9 +26,9 @@ namespace GameLogic.Combat.Skill.MagicSkill
             }
 
             target = allHero[0];
+            MagicAttShowBasic magicAttShowBasic = InitMagicAttShowBasic(allHero[0], Finish);
 
-            straightLineShow.SetTarget(allHero[0], Finish);
-            SetMagicAttShowBasic(straightLineShow);
+            SetMagicAttShowBasic(magicAttShowBasic);
         }
 
         private void Finish()
@@ -44,7 +44,7 @@ namespace GameLogic.Combat.Skill.MagicSkill
             cBetterList.Add(lifetCycleHitPoint);
             ActivationTimeLineData("gongji", currTarget: cBetterList);
             SkillPlayFinish();
-            
+
             HarmReturnInfo harmReturnInfo = CObjectPool.Instance.Fetch<HarmReturnInfo>();
             harmReturnInfo.source = CombatHeroEntity;
             harmReturnInfo.target = target.GetMainHotPoin<CombatHeroHitPoint>();

+ 16 - 0
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/MagicAttShowBasic.cs

@@ -2,7 +2,12 @@ namespace GameLogic.Combat.Skill.MagicSkill
 {
     public class MagicAttShowBasic
     {
+        public CombatHeroEntity CombatHeroEntity {
+            get { return _skillBasic.CombatHeroEntity;}
+        }
         protected SkillBasic _skillBasic;
+        protected CombatHeroEntity target;
+        protected System.Action callBack;
 
         protected bool isUpdate;
         public void Init(SkillBasic skillBasic)
@@ -14,6 +19,17 @@ namespace GameLogic.Combat.Skill.MagicSkill
         protected virtual void ProInit()
         {
             
+        }
+        public void SetInfo(CombatHeroEntity target, System.Action callBack)
+        {
+            this.callBack = callBack;
+            this.target = target;
+            ProSetInfo();
+        }
+
+        protected virtual void ProSetInfo()
+        {
+            
         }
 
         public void Update(float t)

+ 2 - 6
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/StraightLineShow.cs

@@ -9,18 +9,14 @@ namespace GameLogic.Combat.Skill.MagicSkill
 {
     public class StraightLineShow : MagicAttShowBasic
     {
-        private CombatHeroEntity target;
         private BesselPath _besselPath;
         private float allTime;
         private float speed = 15;
 
         private float addTime;
-        private System.Action callBack;
 
-        public void SetTarget(CombatHeroEntity target, System.Action callBack)
+        protected override void ProSetInfo()
         {
-            this.callBack = callBack;
-            this.target = target;
             _besselPath = CObjectPool.Instance.Fetch<BesselPath>();
             _skillBasic.CombatHeroEntity.GameObject.transform.eulerAngles = Vector3.zero;
             Vector3 p1 =
@@ -31,7 +27,7 @@ namespace GameLogic.Combat.Skill.MagicSkill
             _besselPath.controlPoints.Add(p2);
             _besselPath.controlPoints.Add(target.dotPos);
             float d = _besselPath.GetLengthAtT(allTime);
-     
+
             addTime = 1.0f / (d / speed);
             allTime = 0;
         }

+ 106 - 0
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/XiaoShiAndShow.cs

@@ -0,0 +1,106 @@
+using CombatLibrary.CombatLibrary.CombatCore.CustomizeTimeLogic.FxLogic;
+using UnityEngine;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
+
+namespace GameLogic.Combat.Skill.MagicSkill
+{
+    public class XiaoShiAndShow : MagicAttShowBasic
+    {
+        private Vector3 currSize;
+        private Vector3 targetSize;
+        private Vector3 currPos;
+        private Vector3 targetPos;
+
+        private float currTime;
+
+        private float moveSpeed;
+
+        protected bool isUpdateMove;
+
+        protected override void ProInit()
+        {
+        }
+
+        protected override void ProSetInfo()
+        {
+            isUpdateMove = false;
+            TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
+                _skillBasic.ActivationTimeLineData("sk1_xiaoshi");
+            timeLineEventLogicGroupBasic.TimeLineUpdateEnd = XiaoShiFinish;
+        }
+
+        private void XiaoShiFinish()
+        {
+            TimeLineMagicWeaponShowPointSerializtion timeLineMagicWeaponShowPointSerializtion = CombatHeroEntity
+                .combatHeroTimeLineControl
+                .GetTimeLineEventInfo<TimeLineMagicWeaponShowPointSerializtion>("sk1_show");
+            if (timeLineMagicWeaponShowPointSerializtion != null)
+            {
+                switch (timeLineMagicWeaponShowPointSerializtion.showPointType)
+                {
+                    case TimeLineMagicWeaponShowPointSerializtion.ShowPointType.Head:
+                        Vector3 headPos = target.dotPos + new Vector3(0, 5, 0);
+                        CombatHeroEntity.combatHeroGameObject.SetPosition(headPos);
+                        break;
+                    case TimeLineMagicWeaponShowPointSerializtion.ShowPointType.Customize:
+                        SpecialDotInfo specialDotInfo =
+                            target.GetSpecialDotInfo(timeLineMagicWeaponShowPointSerializtion.customizePointName);
+                        CombatHeroEntity.combatHeroGameObject.SetPosition(specialDotInfo.GetWorlPos());
+                        break;
+                }
+            }
+            else
+            {
+                Vector3 headPos = target.dotPos + new Vector3(0, 5, 0);
+                CombatHeroEntity.combatHeroGameObject.SetPosition(headPos);
+            }
+
+            TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
+                _skillBasic.ActivationTimeLineData("sk1_show");
+            timeLineEventLogicGroupBasic.TimeLineUpdateEnd = ShowFinish;
+        }
+
+        private void ShowFinish()
+        {
+            TimeLineEventLogicGroupBasic timeLineEventLogicGroupBasic =
+                _skillBasic.ActivationTimeLineData("sk1");
+            if (timeLineEventLogicGroupBasic != null) //有表现.播表现,不需要位移
+            {
+                timeLineEventLogicGroupBasic.TimeLineUpdateEnd = AllFinish;
+            }
+            else //位移
+            {
+                currSize = Vector3.one;
+                targetSize = Vector3.one * 2f;
+                currPos = CombatHeroEntity.dotPos;
+                targetPos = target.dotPos;
+                currTime = 0;
+                isUpdateMove = true;
+            }
+        }
+
+
+        private void AllFinish()
+        {
+            callBack?.Invoke();
+        }
+
+        protected override void ProUpdate(float t)
+        {
+            if (!isUpdateMove)
+            {
+                return;
+            }
+
+            currTime += t;
+            Vector3 size = Vector3.Lerp(currSize, targetSize, currTime);
+            Vector3 pos = Vector3.Lerp(currPos, targetPos, currTime);
+            CombatHeroEntity.combatHeroGameObject.SetPosition(pos);
+            CombatHeroEntity.combatHeroGameObject.SetScale(size);
+            if(currTime>1)
+            {
+                AllFinish();
+            }
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameLogic/Combat/Skill/MagicSkill/SkillShow/XiaoShiAndShow.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: ec8ff0bae1964c8ab0553f33aa7fdf2f
+timeCreated: 1743404345

+ 57 - 1
Assets/Scripts/GameLogic/Paritcle/ParitcleLogic/FxParabolaBulletLogic.cs

@@ -213,7 +213,63 @@ namespace Common.Combat.FxAILogic
             else
             {
                 HeroEntityMono heroEntityMono = collision.gameObject.GetComponent<HeroEntityMono>();
-                TriggerHero(collision, heroEntityMono);
+                if (heroEntityMono != null)
+                {
+                    TriggerHero(collision, heroEntityMono);
+                    return;
+                }
+
+                BarrierEntityMono barrierEntityMono = collision.gameObject.GetComponent<BarrierEntityMono>();
+                if (barrierEntityMono != null)
+                {
+                    TriggerBarrier(collision, barrierEntityMono);
+                }
+            }
+        }
+
+        protected void TriggerBarrier(Collider collision, BarrierEntityMono barrierEntityMono)
+        {
+            if (barrierEntityMono == null)
+            {
+                return;
+            }
+
+            CombatHeroEntity target = barrierEntityMono.Barrier.Own as CombatHeroEntity;
+            if (target.IsEnemy == CombatHeroEntity.IsEnemy || target is CombatMagicWeaponEntity)
+            {
+                return;
+            }
+
+            if (TimeLineEventParticleLogicBasic.TimeLineEventLogicGroup.groupName == null)
+            {
+                Dispose();
+                return;
+            }
+
+            bool isOk = barrierEntityMono.Barrier.CollideTriiger(this);
+            if (!isOk) //被主档
+            {
+                triggerData.IBarrier = true;
+                ITimeLineTriggerEvent timeLineTriggerEvent =
+                    TimeLineEventParticleLogicBasic.ITimeLineTriggerEntity as ITimeLineTriggerEvent;
+                if (timeLineTriggerEvent != null)
+                {
+                    timeLineTriggerEvent.TimeLineTrigger(
+                        TimeLineEventParticleLogicBasic.TimeLineEventLogicGroup.groupName,
+                        target.GetMainHotPoin<ILifetCycleHitPoint>(), this, triggerData);
+                    
+                    if (!string.IsNullOrEmpty(hitFxName))
+                    {
+                        FinishHit(collision.ClosestPoint(gameObject.transform.position), hitFxName);
+                    }
+
+                    AudioManager.Instance.PlayAudio(hitAudioName, false);
+
+                    if (!isPenetrate)
+                    {
+                        Dispose();
+                    }
+                }
             }
         }
 

+ 3 - 0
Assets/Scripts/GameTimeLine/CustomizeTime/TimeLineMagicWeaponShowPointAsset.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 36621e53d9bc437e8d8335226a998642
+timeCreated: 1743403727

+ 6 - 0
Assets/Scripts/GameTimeLine/CustomizeTime/TimeLineMagicWeaponShowPointAsset/TimeLineMagicWeaponShowPointAsset.cs

@@ -0,0 +1,6 @@
+[System.Serializable]
+public class TimeLineMagicWeaponShowPointAsset : CustomizePlayableAsset
+{
+    public TimeLineMagicWeaponShowPointSerializtion.ShowPointType showPointType;
+    public string customizePointName;
+}

+ 3 - 0
Assets/Scripts/GameTimeLine/CustomizeTime/TimeLineMagicWeaponShowPointAsset/TimeLineMagicWeaponShowPointAsset.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 81054414a48f4524b73900f09dc41590
+timeCreated: 1743403743

+ 26 - 0
Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogic/TimeLineMagicWeaponShowPointLogic.cs

@@ -0,0 +1,26 @@
+namespace UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic
+{
+    public class TimeLineMagicWeaponShowPointLogic : TimeLineEventLogicBasic
+
+    {
+        protected override void ProSetCombatInfo()
+        {
+        }
+
+        protected override void ProEnter()
+        {
+        }
+
+        protected override void ProLeave()
+        {
+        }
+
+        protected override void ProTimeUpdate()
+        {
+        }
+
+        protected override void ProBreakTimeLine()
+        {
+        }
+    }
+}

+ 3 - 0
Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TimeLineEventLogic/TimeLineMagicWeaponShowPointLogic.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 660b5172ab1740b08260c22622790fb4
+timeCreated: 1743403890

+ 5 - 0
Assets/Scripts/GameTimeLine/CustomizeTimeLogic/FxLogic/TriggerData.cs

@@ -24,5 +24,10 @@
         /// 额外添加伤害
         /// </summary>
         public float addHarm;
+
+        /// <summary>
+        /// 障碍
+        /// </summary>
+        public object IBarrier;
     }
 }

+ 14 - 0
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLienData.cs

@@ -112,7 +112,21 @@ public class TimeLienData
 
         return maxTime;
     }
+    public T GetTimeLineEventInfo<T>(string groupName,IFilterTimeLine filterTimeLine) where T : class
+    {
+        List<TimeLineAssetSerialization> timeLineAssetSerializations =
+            GetTimeLineAssetSerialization(groupName, filterTimeLine);
+        for (int i = 0; i < timeLineAssetSerializations.Count; i++)
+        {
+        
+            if (timeLineAssetSerializations[i] is T )
+            {
+                return timeLineAssetSerializations[i] as T;
+            }
+        }
 
+        return null;
+    }
     public List<CurveInfo> GetTimeLineEventCurveInfos(string groupName, string guid, IFilterTimeLine filterTimeLine)
     {
         List<TimeLineAssetSerialization> timeLineAssetSerializations =

+ 39 - 0
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineMagicWeaponShowPointSerializtion.cs

@@ -0,0 +1,39 @@
+using Fort23.Core;
+using UnityEngine.Playables;
+using UnityEngine.Timeline;
+using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
+
+public class TimeLineMagicWeaponShowPointSerializtion : TimeLineAssetSerialization
+{
+    public enum ShowPointType
+    {
+        Head = 0,
+        Customize = 1,
+    }
+
+    public ShowPointType showPointType;
+    public string customizePointName;
+    public TimeLineMagicWeaponShowPointSerializtion()
+    {
+    }
+#if !COMBAT_SERVER
+
+    public TimeLineMagicWeaponShowPointSerializtion(PlayableDirector playableDirector, GroupTrack groupTrack,
+        TimelineClip timelineClip) : base(groupTrack, timelineClip)
+    {
+        TimeLineMagicWeaponShowPointAsset tlineMagicWeaponShowPointAsset =
+            timelineClip.asset as TimeLineMagicWeaponShowPointAsset;
+        if (tlineMagicWeaponShowPointAsset == null)
+        {
+            return;
+        }
+
+        showPointType = tlineMagicWeaponShowPointAsset.showPointType;
+        customizePointName = tlineMagicWeaponShowPointAsset.customizePointName;
+    }
+#endif
+    public override TimeLineEventLogicBasic CreateLogic()
+    {
+        return CObjectPool.Instance.Fetch<TimeLineMagicWeaponShowPointLogic>();
+    }
+}

+ 3 - 0
Assets/Scripts/GameTimeLine/SerializationTimeLine/TimeLineSerialization/TimeLineMagicWeaponShowPointSerializtion.cs.meta

@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: c56c5dfa749b4024a1a45191563b8259
+timeCreated: 1743403826

Diferenças do arquivo suprimidas por serem muito extensas
+ 0 - 0
Assets/StreamingAssets/assetConfig.txt


Diferenças do arquivo suprimidas por serem muito extensas
+ 1974 - 649
UserSettings/Layouts/default-2022.dwlt


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff