Newer
Older
DungeonShooting / DungeonShooting_Godot / src / config / ExcelConfig_ActivityBase.cs
@小李xl 小李xl on 31 Mar 2024 3 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 ActivityBase
  9. {
  10. /// <summary>
  11. /// 物体唯一id <br/>
  12. /// 需要添加类型前缀
  13. /// </summary>
  14. [JsonInclude]
  15. public string Id;
  16.  
  17. /// <summary>
  18. /// 物体名称
  19. /// </summary>
  20. [JsonInclude]
  21. public string Name;
  22.  
  23. /// <summary>
  24. /// Test(测试对象): 2 <br/>
  25. /// Role(角色): 3 <br/>
  26. /// Enemy(敌人): 4 <br/>
  27. /// Weapon(武器): 5 <br/>
  28. /// Bullet(子弹): 6 <br/>
  29. /// Shell(弹壳): 7 <br/>
  30. /// Effect(特效): 8 <br/>
  31. /// Prop(道具): 9 <br/>
  32. /// Treasure(宝箱): 10 <br/>
  33. /// Npc: 11 <br/>
  34. /// Other(其它类型): 99
  35. /// </summary>
  36. [JsonInclude]
  37. public ActivityType Type;
  38.  
  39. /// <summary>
  40. /// 物体品质, 用于武器和道具 <br/>
  41. /// 通用物品: 1 <br/>
  42. /// 基础: 2 <br/>
  43. /// 普通: 3 <br/>
  44. /// 稀有: 4 <br/>
  45. /// 史诗: 5 <br/>
  46. /// 传说: 6 <br/>
  47. /// 独一无二: 7
  48. /// </summary>
  49. [JsonInclude]
  50. public ActivityQuality Quality;
  51.  
  52. /// <summary>
  53. /// 商店售价
  54. /// </summary>
  55. [JsonInclude]
  56. public uint Price;
  57.  
  58. /// <summary>
  59. /// 物体简介 <br/>
  60. /// 一句对物体简短的介绍, 比如拾起物体时弹出的描述
  61. /// </summary>
  62. [JsonInclude]
  63. public string Intro;
  64.  
  65. /// <summary>
  66. /// 物体详情 <br/>
  67. /// 在图鉴中的描述
  68. /// </summary>
  69. [JsonInclude]
  70. public string Details;
  71.  
  72. /// <summary>
  73. /// 是否是静态物体
  74. /// </summary>
  75. [JsonInclude]
  76. public bool IsStatic;
  77.  
  78. /// <summary>
  79. /// 物体使用交互材质 <br/>
  80. /// 如果不填,则默认使用id为0001的材质
  81. /// </summary>
  82. public ActivityMaterial Material;
  83.  
  84. /// <summary>
  85. /// 物体预制场景路径, 场景根节点必须是ActivityObject子类
  86. /// </summary>
  87. [JsonInclude]
  88. public string Prefab;
  89.  
  90. /// <summary>
  91. /// 物体图标 <br/>
  92. /// 如果不需要在图鉴或者地图编辑器中显示该物体, 则可以不用设置
  93. /// </summary>
  94. [JsonInclude]
  95. public string Icon;
  96.  
  97. /// <summary>
  98. /// 是否在地图编辑器中显示该物体
  99. /// </summary>
  100. [JsonInclude]
  101. public bool ShowInMapEditor;
  102.  
  103. /// <summary>
  104. /// 返回浅拷贝出的新对象
  105. /// </summary>
  106. public ActivityBase Clone()
  107. {
  108. var inst = new ActivityBase();
  109. inst.Id = Id;
  110. inst.Name = Name;
  111. inst.Type = Type;
  112. inst.Quality = Quality;
  113. inst.Price = Price;
  114. inst.Intro = Intro;
  115. inst.Details = Details;
  116. inst.IsStatic = IsStatic;
  117. inst.Material = Material;
  118. inst.Prefab = Prefab;
  119. inst.Icon = Icon;
  120. inst.ShowInMapEditor = ShowInMapEditor;
  121. return inst;
  122. }
  123. }
  124. private class Ref_ActivityBase : ActivityBase
  125. {
  126. [JsonInclude]
  127. public string __Material;
  128.  
  129. }
  130. }