// Generate By EToy
// Don't Edit It!!
using XGame.Framework.Database;
using XGame.Framework.Serialization;
namespace XGame.Database
{
/// SkillVfxs
public sealed class SkillVfxsTable : ITable
{
long ITable.Key => Id;
/// id职业技能:职业ID*10+序号飞剑技能:飞剑ID*10+序号怪物技能:怪物ID*10+序号通用技能:200000+技能品质*100+序号家族技能:300000+技能品质*100+序号车位技能:400000+技能品质*100+序号
public int Id { get; private set; }
/// 施法特效和施法动作配套
public string CastVfx { get; private set; }
/// 施法特效跟随类型控制施法特效父节点0:角色中心(跟随玩家移动)1:角色始发点(跟随玩家移动)2:世界坐标
public int VfxFollowType { get; private set; }
/// 施法特效时长单位:毫秒不能超过技能持续时长
public int CastVfxTime { get; private set; }
/// 动作名字
public EAnimationName AniName { get; private set; }
/// 技能特效
public string SkillVfx { get; private set; }
/// 技能特效出现的时间单位:毫秒
public int SkillVfxDelay { get; private set; }
/// 技能特效数量
public int SkillVfxCount { get; private set; }
/// 技能特效间隔单位:毫秒
public int SkillVfxInterval { get; private set; }
/// 技能特效持续时长单位:毫秒-1表示不限时间
public int SkillVfxTime { get; private set; }
/// 0:不移动1:线性2:随机贝塞尔3:抛物线
public int SkillVfxMoveType { get; private set; }
/// 移动速度曲线,默认线性,名字参考:https://blog.csdn.net/qq_44119541/article/details/107397494
public string SkillVfxMoveEase { get; private set; }
/// 移动速度
public float SkillVfxSpeed { get; private set; }
/// 技能特效坐标参数Y坐标根据施法者为玩家/怪物动态加/减0:特效出生点相对施法点偏移坐标1:特效结束点相对施法点偏移坐标
public Vec3[] SkillVfxPositions { get; private set; }
/// 受击特效
public string HitVfx { get; private set; }
/// 受击特效时长单位:毫秒
public int HitVfxTime { get; private set; }
/// 201:["陷阱展开特效","陷阱爆炸特效"]
public string[] CustomArgs { get; private set; }
void ISerializable.Deserialize(IReader reader)
{
Id = reader.ReadInt();
CastVfx = reader.ReadString();
VfxFollowType = reader.ReadInt();
CastVfxTime = reader.ReadInt();
AniName = (EAnimationName)reader.ReadInt();
SkillVfx = reader.ReadString();
SkillVfxDelay = reader.ReadInt();
SkillVfxCount = reader.ReadInt();
SkillVfxInterval = reader.ReadInt();
SkillVfxTime = reader.ReadInt();
SkillVfxMoveType = reader.ReadInt();
SkillVfxMoveEase = reader.ReadString();
SkillVfxSpeed = reader.ReadFloat();
SkillVfxPositions = reader.ReadEnumerable();
HitVfx = reader.ReadString();
HitVfxTime = reader.ReadInt();
CustomArgs = reader.ReadEnumerable();
}
void ISerializable.Serialize(IWriter writer)
{
writer.Write(Id);
writer.Write(CastVfx);
writer.Write(VfxFollowType);
writer.Write(CastVfxTime);
writer.Write((int)AniName);
writer.Write(SkillVfx);
writer.Write(SkillVfxDelay);
writer.Write(SkillVfxCount);
writer.Write(SkillVfxInterval);
writer.Write(SkillVfxTime);
writer.Write(SkillVfxMoveType);
writer.Write(SkillVfxMoveEase);
writer.Write(SkillVfxSpeed);
writer.Write(SkillVfxPositions);
writer.Write(HitVfx);
writer.Write(HitVfxTime);
writer.Write(CustomArgs);
}
}
}