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