|
@@ -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();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|