Newer
Older
DungeonShooting / DungeonShooting_Godot / src / framework / map / DungeonConfig.cs
@小李xl 小李xl on 25 Jan 2024 2 KB 自定义房间生成规则, 完成
  1.  
  2. using System.Collections.Generic;
  3.  
  4. /// <summary>
  5. /// 生成地牢的配置
  6. /// </summary>
  7. public class DungeonConfig
  8. {
  9. /// <summary>
  10. /// 地牢组名称
  11. /// </summary>
  12. public string GroupName;
  13.  
  14. /// <summary>
  15. /// 战斗房间数量
  16. /// </summary>
  17. public int BattleRoomCount = 15;
  18.  
  19. /// <summary>
  20. /// 奖励房间数量
  21. /// </summary>
  22. public int RewardRoomCount = 2;
  23.  
  24. /// <summary>
  25. /// 商店数量
  26. /// </summary>
  27. public int ShopRoomCount = 1;
  28.  
  29. /// <summary>
  30. /// 出口房间数量
  31. /// </summary>
  32. public int OutRoomCount = 1;
  33.  
  34. /// <summary>
  35. /// Boss房间数量
  36. /// </summary>
  37. public int BossRoomCount = 1;
  38. /// <summary>
  39. /// 房间数量
  40. /// </summary>
  41. public int RoomCount => BattleRoomCount + RewardRoomCount + ShopRoomCount + OutRoomCount + BossRoomCount;
  42. /// <summary>
  43. /// 房间最大层级
  44. /// </summary>
  45. public int MaxLayer = 5;
  46. /// <summary>
  47. /// 房间最小间隔
  48. /// </summary>
  49. public int RoomMinInterval = 2;
  50. /// <summary>
  51. /// 房间最大间隔
  52. /// </summary>
  53. public int RoomMaxInterval = 5;
  54. /// <summary>
  55. /// 房间横轴最小分散程度
  56. /// </summary>
  57. public float RoomHorizontalMinDispersion = -0.6f;
  58. /// <summary>
  59. /// 房间横轴最大分散程度
  60. /// </summary>
  61. public float RoomHorizontalMaxDispersion = 0.6f;
  62.  
  63. /// <summary>
  64. /// 房间纵轴最小分散程度
  65. /// </summary>
  66. public float RoomVerticalMinDispersion = -0.6f;
  67. /// <summary>
  68. /// 房间纵轴最大分散程度
  69. /// </summary>
  70. public float RoomVerticalMaxDispersion = 0.6f;
  71. /// <summary>
  72. /// 是否启用区域限制
  73. /// </summary>
  74. public bool EnableLimitRange = true;
  75. /// <summary>
  76. /// 横轴范围
  77. /// </summary>
  78. public int RangeX = 120;
  79. /// <summary>
  80. /// 纵轴范围
  81. /// </summary>
  82. public int RangeY = 120;
  83. //----------------------- 地牢编辑使用 -------------------------
  84. /// <summary>
  85. /// 是否指定了房间
  86. /// </summary>
  87. public bool HasDesignatedRoom => DesignatedRoom != null && DesignatedRoom.Count > 0;
  88. /// <summary>
  89. /// 指定房间类型
  90. /// </summary>
  91. public DungeonRoomType DesignatedType;
  92. /// <summary>
  93. /// 指定房间列表
  94. /// </summary>
  95. public List<DungeonRoomSplit> DesignatedRoom;
  96. }