Newer
Older
DungeonShooting / src / gun / GunAttribute.cs
@小李xl 小李xl on 30 May 2022 3 KB 更改目录结构
  1. using Godot;
  2.  
  3. /// <summary>
  4. /// 枪上的属性
  5. /// </summary>
  6. public class GunAttribute
  7. {
  8. /// <summary>
  9. /// 枪的图片
  10. /// </summary>
  11. public string Sprite = "res://resource/sprite/gun/gun1.png";
  12. /// <summary>
  13. /// 是否连续发射, 如果为false, 则每次发射都需要扣动扳机
  14. /// </summary>
  15. public bool ContinuousShoot = true;
  16. /// <summary>
  17. /// 是否为松发开火, 也就是松开扳机才开火, 若要启用该属性, 必须将 'ContinuousShoot' 设置为 false
  18. /// </summary>
  19. public bool LooseShoot = false;
  20. /// <summary>
  21. /// 连续发射最小次数, 仅当ContinuousShoot为false时生效
  22. /// </summary>
  23. public int MinContinuousCount = 3;
  24. /// <summary>
  25. /// 连续发射最大次数, 仅当ContinuousShoot为false时生效
  26. /// </summary>
  27. public int MaxContinuousCount = 3;
  28. /// <summary>
  29. /// 按下一次扳机后需要多长时间才能再次按下
  30. /// </summary>
  31. public float TriggerInterval = 0;
  32. /// <summary>
  33. /// 初始射速, 初始每秒分钟能发射多少发子弹
  34. /// </summary>
  35. public float StartFiringSpeed = 300;
  36. /// <summary>
  37. /// 最终射速, 最终每秒分钟能发射多少发子弹
  38. /// </summary>
  39. public float FinalFiringSpeed = 300;
  40. /// <summary>
  41. /// 按下扳机并开火后射速增加速率
  42. /// </summary>
  43. public float FiringSpeedAddSpeed = 2;
  44. /// <summary>
  45. /// 松开扳机后射速消散速率
  46. /// </summary>
  47. public float FiringSpeedBackSpeed = 10;
  48. /// <summary>
  49. /// 单次开火发射子弹最小数量
  50. /// </summary>
  51. public int MinFireBulletCount = 1;
  52. /// <summary>
  53. /// 单次开火发射子弹最大数量
  54. /// </summary>
  55. public int MaxFireBulletCount = 1;
  56. /// <summary>
  57. /// 开火前延时
  58. /// </summary>
  59. public float DelayedTime = 0f;
  60. /// <summary>
  61. /// 初始散射半径
  62. /// </summary>
  63. public float StartScatteringRange = 0;
  64. /// <summary>
  65. /// 最终散射半径
  66. /// </summary>
  67. public float FinalScatteringRange = 20;
  68. /// <summary>
  69. /// 每次发射后散射增加值
  70. /// </summary>
  71. public float ScatteringRangeAddValue = 2;
  72. /// <summary>
  73. /// 松开扳机后散射销退速率
  74. /// </summary>
  75. public float ScatteringRangeBackSpeed = 10;
  76. /// <summary>
  77. /// 子弹飞行最大距离
  78. /// </summary>
  79. public float MaxDistance = 600;
  80. /// <summary>
  81. /// 子弹飞行最小距离
  82. /// </summary>
  83. public float MinDistance = 800;
  84. /// <summary>
  85. /// 开火位置
  86. /// </summary>
  87. public Vector2 FirePosition = new Vector2(11, 0);
  88. /// <summary>
  89. /// 握把位置
  90. /// </summary>
  91. public Vector2 HoldPosition = new Vector2(4, -3);
  92. /// <summary>
  93. /// 重量
  94. /// </summary>
  95. public float Weight = 11;
  96. /// <summary>
  97. /// 最大后坐力 (仅用于开火后枪身抖动)
  98. /// </summary>
  99. public float MaxBacklash = 4;
  100. /// <summary>
  101. /// 最小后坐力 (仅用于开火后枪身抖动)
  102. /// </summary>
  103. public float MinBacklash = 2;
  104. /// <summary>
  105. /// 开火后枪口上抬角度
  106. /// </summary>
  107. public float UpliftAngle = 30;
  108. /// <summary>
  109. /// 开火后枪口角度恢复速度倍数
  110. /// </summary>
  111. public float UpliftAngleRestore = 1;
  112.  
  113. public GunAttribute()
  114. {
  115. }
  116. }