SkillTable.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. // Generate By EToy
  2. // Don't Edit It!!
  3. using XGame.Framework.Database;
  4. using XGame.Framework.Serialization;
  5. namespace XGame.Database
  6. {
  7. /// <summary> Skill </summary>
  8. public sealed class SkillTable : ITable
  9. {
  10. long ITable.Key => Id;
  11. /// <summary> id职业技能:职业ID*10+序号飞剑技能:飞剑ID*10+序号怪物技能:怪物ID*10+序号通用技能:200000+技能品质*100+序号家族技能:300000+技能品质*100+序号车位技能:400000+技能品质*100+序号 </summary>
  12. public int Id { get; private set; }
  13. /// <summary> 品质0:无品质1:白2:绿3:蓝4:紫5:黄6:橙7:红8:粉 </summary>
  14. public int Quality { get; private set; }
  15. /// <summary> 技能图标 </summary>
  16. public string Icon { get; private set; } // c
  17. /// <summary> 技能名称 </summary>
  18. public string Name { get; private set; } // c
  19. /// <summary> 技能描述 </summary>
  20. public string Desc { get; private set; } // c
  21. /// <summary> 元素系1:火2:雷3:冰4:毒5:风0:无元素 </summary>
  22. public EElementType Element { get; private set; }
  23. /// <summary> 技能型态1:主动技能2:被动技能 </summary>
  24. public int ModalityType { get; private set; } // c
  25. /// <summary> 技能效果类型1.永久属性类(该类型的技能不走触发)2.伤害类型3.BUFF类型4:召唤类型 </summary>
  26. public int EffectType { get; private set; }
  27. /// <summary> 技能类型0:无(永久属性类适用)1:单体2:群体3:召唤 </summary>
  28. public int Type { get; private set; } // c
  29. /// <summary> 作用对象 1:主角 2:所有飞剑 3:主角+飞剑 4:所有剑 8:所有斧 16:所有锤 32:所有法杖 64:所有匕首 512:受击者(敌方单体)1024:敌方群体2048:友方群体4096:施法者 </summary>
  30. public int TargetType { get; private set; } // sc
  31. /// <summary> 技能触发类型0:无1:常规(寻找范围内的作用目标释放技能)2:普攻时概率触发(条件类型,概率)3:普攻X次时触发( 条件类型,次数)4:普攻暴击时触发( 条件类型)5:释放技能时触发( 条件类型)6:释放技能后,延迟X秒触发( 条件类型,延迟时间)7:技能暴击时触发( 条件类型)8:连击时触发( 条件类型)9:连击暴击时触发( 条件类型)10:反击时触发( 条件类型)11:击晕时触发( 条件类型)12:闪避时触发( 条件类型)13:被普攻命中时触发( 条件类型)14:被技能命中时触发( 条件类型)15:开场时触发( 条件类型)16:战斗开启后,每隔X秒后触发( 条件类型,间隔时间)17:生命低于%时触发( 条件类型,血量条件)18:生命高于%时触发( 条件类型,血量条件)19:生命每降低%时触发(每个%只能被触发一次)( 条件类型,血量条件)20:释放主动技能后触发直接伤害21:连击X次后触发22:反击X次后触发 </summary>
  32. public int[] TriggerType { get; private set; }
  33. /// <summary> 技能持续时间 </summary>
  34. public int EndureTime { get; private set; }
  35. /// <summary> 冷却时长 </summary>
  36. public int RestTime { get; private set; }
  37. /// <summary> 技能特效类型:0:无101:普通子弹,命中目标造成伤害102:子弹,命中后分裂103:子弹,命中后弹跳104:子弹,不需要选目标,发射目标位置随机,落地找受击目标(单体伤害)并爆炸(群体伤害)201:陷阱301:AOE(虫群特效半径为1,配置宽高需要X2,该特效不适合缩放,预制按照目标尺寸重复摆放基础特效)311:近战AOE,屏幕中心,不可移动312:以选定目标为中心的AOE,不可移动401:Buff501:召唤物 </summary>
  38. public int SkillVfxType { get; private set; }
  39. /// <summary> 技能范围,结构由skillVfxType决定104:[落地伤害半径(单体),爆炸半径]201:[触发半径,爆炸半径]AOE:[1,宽,高] OR [2,半径,度数,伤害递减半径,伤害递减系数] </summary>
  40. public float[] Ranges { get; private set; }
  41. /// <summary> 基础伤害值 </summary>
  42. public int Damage { get; private set; }
  43. /// <summary> 102:[3(数量),60(夹角,为零则找最近的目标),5000(缩放万分比)]103:[2(弹跳次数),2000(伤害递减万分比)]104:[爆炸伤害]AOE:[次数(-1无限直至特效结束),aoe延迟,aoe间隔,1(是否重复选中,0:false),-1:(受击次数,-1:不限,1:1次)] </summary>
  44. public int[] DamageArgs { get; private set; }
  45. /// <summary> BUFF关联【触发概率(万分比),buff关联ID】具体ID关联BUFF表 </summary>
  46. public int[] BuffTie { get; private set; }
  47. /// <summary> 效果类型(暂时不需要)1:属性类型技能 属性ID,属性值,0/1(0:固定值,1:百分比)2:伤害类型技能 伤害数值百分比,0/1(0:普通伤害计算,1:真伤计算(直接跳过减伤和防御))3:BUFF类型 关联BUFF表ID4:召唤类型 召唤单位ID,数量 </summary>
  48. public int[] EffectTypeNum { get; private set; }
  49. /// <summary> 关联技能(暂时不需要) </summary>
  50. public int[] RelatedSkill { get; private set; }
  51. void ISerializable.Deserialize(IReader reader)
  52. {
  53. Id = reader.ReadInt();
  54. Quality = reader.ReadInt();
  55. Icon = reader.ReadString();
  56. Name = reader.ReadString();
  57. Desc = reader.ReadString();
  58. Element = (EElementType)reader.ReadInt();
  59. ModalityType = reader.ReadInt();
  60. EffectType = reader.ReadInt();
  61. Type = reader.ReadInt();
  62. TargetType = reader.ReadInt();
  63. TriggerType = reader.ReadEnumerable<int[]>();
  64. EndureTime = reader.ReadInt();
  65. RestTime = reader.ReadInt();
  66. SkillVfxType = reader.ReadInt();
  67. Ranges = reader.ReadEnumerable<float[]>();
  68. Damage = reader.ReadInt();
  69. DamageArgs = reader.ReadEnumerable<int[]>();
  70. BuffTie = reader.ReadEnumerable<int[]>();
  71. EffectTypeNum = reader.ReadEnumerable<int[]>();
  72. RelatedSkill = reader.ReadEnumerable<int[]>();
  73. }
  74. void ISerializable.Serialize(IWriter writer)
  75. {
  76. writer.Write(Id);
  77. writer.Write(Quality);
  78. writer.Write(Icon);
  79. writer.Write(Name);
  80. writer.Write(Desc);
  81. writer.Write((int)Element);
  82. writer.Write(ModalityType);
  83. writer.Write(EffectType);
  84. writer.Write(Type);
  85. writer.Write(TargetType);
  86. writer.Write(TriggerType);
  87. writer.Write(EndureTime);
  88. writer.Write(RestTime);
  89. writer.Write(SkillVfxType);
  90. writer.Write(Ranges);
  91. writer.Write(Damage);
  92. writer.Write(DamageArgs);
  93. writer.Write(BuffTie);
  94. writer.Write(EffectTypeNum);
  95. writer.Write(RelatedSkill);
  96. }
  97. }
  98. }