Newer
Older
DungeonShooting / DungeonShooting_Godot / src / game / data / BulletData.cs
  1.  
  2. using Config;
  3. using Godot;
  4.  
  5. /// <summary>
  6. /// 子弹数据
  7. /// </summary>
  8. public class BulletData : IClone<BulletData>
  9. {
  10. /// <summary>
  11. /// 数据所在世界对象
  12. /// </summary>
  13. public World World;
  14. /// <summary>
  15. /// 发射该子弹的武器, 可能为null
  16. /// </summary>
  17. public Weapon Weapon;
  18. /// <summary>
  19. /// 使用的配置数据
  20. /// </summary>
  21. public ExcelConfig.BulletBase BulletBase;
  22. /// <summary>
  23. /// 发射该子弹的角色, 可能为null
  24. /// </summary>
  25. public Role TriggerRole;
  26. /// <summary>
  27. /// 造成的伤害
  28. /// </summary>
  29. public int Harm;
  30.  
  31. /// <summary>
  32. /// 击退值
  33. /// </summary>
  34. public float Repel;
  35.  
  36. /// <summary>
  37. /// 最大飞行距离
  38. /// </summary>
  39. public float MaxDistance;
  40.  
  41. /// <summary>
  42. /// 子弹飞行速度
  43. /// </summary>
  44. public float FlySpeed;
  45.  
  46. /// <summary>
  47. /// 初始离地高度
  48. /// </summary>
  49. public float Altitude;
  50. /// <summary>
  51. /// 纵轴速度
  52. /// </summary>
  53. public float VerticalSpeed;
  54. /// <summary>
  55. /// 反弹次数
  56. /// </summary>
  57. public int BounceCount;
  58.  
  59. /// <summary>
  60. /// 子弹最大穿透次数
  61. /// </summary>
  62. public int Penetration;
  63.  
  64. /// <summary>
  65. /// 子弹最大存在时间
  66. /// </summary>
  67. public float LifeTime;
  68.  
  69. /// <summary>
  70. /// 坐标
  71. /// </summary>
  72. public Vector2 Position;
  73. /// <summary>
  74. /// 旋转角度
  75. /// </summary>
  76. public float Rotation;
  77. public BulletData(World world)
  78. {
  79. World = world;
  80. }
  81. public BulletData Clone()
  82. {
  83. return new BulletData(World)
  84. {
  85. Weapon = Weapon,
  86. BulletBase = BulletBase,
  87. TriggerRole = TriggerRole,
  88. Harm = Harm,
  89. Repel = Repel,
  90. MaxDistance = MaxDistance,
  91. FlySpeed = FlySpeed,
  92. Altitude = Altitude,
  93. VerticalSpeed = VerticalSpeed,
  94. BounceCount = BounceCount,
  95. Penetration = Penetration,
  96. LifeTime = LifeTime,
  97. Position = Position,
  98. Rotation = Rotation
  99. };
  100. }
  101. }