Newer
Older
DungeonShooting / DungeonShooting_Godot / src / config / ExcelConfig_EnemyBase.cs
@小李xl 小李xl on 25 Feb 2024 2 KB 敌人添加攻击间隔配置
  1. using System.Text.Json.Serialization;
  2. using System.Collections.Generic;
  3.  
  4. namespace Config;
  5.  
  6. public static partial class ExcelConfig
  7. {
  8. public class EnemyBase
  9. {
  10. /// <summary>
  11. /// 表Id
  12. /// </summary>
  13. [JsonInclude]
  14. public string Id;
  15.  
  16. /// <summary>
  17. /// 绑定的ActivityBase表数据
  18. /// </summary>
  19. public ActivityBase Activity;
  20.  
  21. /// <summary>
  22. /// 备注
  23. /// </summary>
  24. [JsonInclude]
  25. public string Remark;
  26.  
  27. /// <summary>
  28. /// 血量
  29. /// </summary>
  30. [JsonInclude]
  31. public int Hp;
  32.  
  33. /// <summary>
  34. /// 移动速度
  35. /// </summary>
  36. [JsonInclude]
  37. public float MoveSpeed;
  38.  
  39. /// <summary>
  40. /// 移动加速度
  41. /// </summary>
  42. [JsonInclude]
  43. public float Acceleration;
  44.  
  45. /// <summary>
  46. /// 移动摩擦力, 仅用于人物基础移动
  47. /// </summary>
  48. [JsonInclude]
  49. public float Friction;
  50.  
  51. /// <summary>
  52. /// 单次攻击间隔时间, 秒 <br/>
  53. /// 注意, 敌人攻击后计算间隔时间会使用当前字段值与武器上的TriggerInterval叠加
  54. /// </summary>
  55. [JsonInclude]
  56. public float AttackInterval;
  57.  
  58. /// <summary>
  59. /// 是否可以拾起武器
  60. /// </summary>
  61. [JsonInclude]
  62. public bool CanPickUpWeapon;
  63.  
  64. /// <summary>
  65. /// 视野半径, 单位像素, 发现玩家后改视野范围可以穿墙
  66. /// </summary>
  67. [JsonInclude]
  68. public float ViewRange;
  69.  
  70. /// <summary>
  71. /// 发现玩家后跟随玩家的视野半径
  72. /// </summary>
  73. [JsonInclude]
  74. public float TailAfterViewRange;
  75.  
  76. /// <summary>
  77. /// 背后的视野半径, 单位像素
  78. /// </summary>
  79. [JsonInclude]
  80. public float BackViewRange;
  81.  
  82. /// <summary>
  83. /// 掉落金币数量区间, 如果为负数或者0则不会掉落金币 <br/>
  84. /// 格式为[value]或者[min,max]
  85. /// </summary>
  86. [JsonInclude]
  87. public int[] Gold;
  88.  
  89. /// <summary>
  90. /// 返回浅拷贝出的新对象
  91. /// </summary>
  92. public EnemyBase Clone()
  93. {
  94. var inst = new EnemyBase();
  95. inst.Id = Id;
  96. inst.Activity = Activity;
  97. inst.Remark = Remark;
  98. inst.Hp = Hp;
  99. inst.MoveSpeed = MoveSpeed;
  100. inst.Acceleration = Acceleration;
  101. inst.Friction = Friction;
  102. inst.AttackInterval = AttackInterval;
  103. inst.CanPickUpWeapon = CanPickUpWeapon;
  104. inst.ViewRange = ViewRange;
  105. inst.TailAfterViewRange = TailAfterViewRange;
  106. inst.BackViewRange = BackViewRange;
  107. inst.Gold = Gold;
  108. return inst;
  109. }
  110. }
  111. private class Ref_EnemyBase : EnemyBase
  112. {
  113. [JsonInclude]
  114. public string __Activity;
  115.  
  116. }
  117. }