|
|
|
|
using System;
|
|
|
|
|
using Game;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
using UnityEngine.Playables;
|
|
|
|
|
using UnityEngine.Serialization;
|
|
|
|
|
|
|
|
|
|
[Serializable]
|
|
|
|
|
public class AttackBehaviour : PlayableBehaviour
|
|
|
|
|
{
|
|
|
|
|
[Rename("强制位移方向")] public Vector3 flowSpeed;
|
|
|
|
|
[Rename("强制位移持续时间")] public float flowTime;
|
|
|
|
|
[Rename("可以从地面击飞")] public bool isFlow;
|
|
|
|
|
[Rename("Aoe")] public bool isAoe = true;
|
|
|
|
|
[Rename("伤害修正")] public float damageRate = 1;
|
|
|
|
|
[Rename("眩晕修正")] public float stunRate = 1;
|
|
|
|
|
[Rename("硬直等级")] public int staggerLevel = 2;
|
|
|
|
|
[Rename("卡帧时间(帧)")] public int pauseTime;
|
|
|
|
|
[Rename("命中id")] public int hitId; //同一hitId视为一段伤害
|
|
|
|
|
[Rename("伤害类型")] public EHitType hitType;
|
|
|
|
|
[Rename("结算顺序")] public EHitOrderType hitOrderType = EHitOrderType.Forward;
|
|
|
|
|
[Rename("命中方向")] public EHitDirType hitDirType = EHitDirType.Forward;
|
|
|
|
|
[Rename("命中形状")] public EShapeType Type;
|
|
|
|
|
[Rename("偏移(格)")] public Vector3 Offset;
|
|
|
|
|
[Rename("高度(格)")] public float Height;
|
|
|
|
|
[Rename("长(格)")] public float SizeX;
|
|
|
|
|
[Rename("宽(格)")] public float SizeY;
|
|
|
|
|
[Rename("半径(格)")] public float Radius;
|
|
|
|
|
[Rename("角度")] public float Angle;
|
|
|
|
|
[Rename("投技时间轴")] public PlayableAsset throwTimeline;
|
|
|
|
|
|
|
|
|
|
private Shape _shape = null;
|
|
|
|
|
private const float ToGridSize = 16f / 64f;
|
|
|
|
|
|
|
|
|
|
public Shape Shape
|
|
|
|
|
{
|
|
|
|
|
get { return _shape ??= ShapeNew; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Shape ShapeNew
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
return Type switch
|
|
|
|
|
{
|
|
|
|
|
EShapeType.Dot =>
|
|
|
|
|
Shape.NewDot(Offset * ToGridSize),
|
|
|
|
|
EShapeType.Circle =>
|
|
|
|
|
Shape.NewCircle(Offset * ToGridSize, Height * ToGridSize, Radius * ToGridSize),
|
|
|
|
|
EShapeType.Sector =>
|
|
|
|
|
Shape.NewSector(Offset * ToGridSize, Height * ToGridSize, Radius * ToGridSize, Angle),
|
|
|
|
|
EShapeType.Box =>
|
|
|
|
|
Shape.NewBox(Offset * ToGridSize, Height * ToGridSize, SizeX * ToGridSize, SizeY * ToGridSize),
|
|
|
|
|
_ => _shape
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public override void OnPlayableCreate(Playable playable)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|