You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

constants.h 11 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. #pragma once
  2. #ifndef CONSTANTS_H
  3. #define CONSTANTS_H
  4. #ifndef SCCI
  5. #define SCCI static const constexpr inline
  6. #endif
  7. namespace Constants
  8. {
  9. // 地图相关
  10. SCCI int numOfGridPerCell = 1000; // 单位坐标数
  11. SCCI int rows = 50; // 地图行数
  12. SCCI int cols = 50; // 地图列数
  13. SCCI int numOfClassroom = 10; // 教室数量
  14. SCCI int numOfChest = 8; // 宝箱数量
  15. SCCI int maxClassroomProgress = 10000000; // 教室最大进度
  16. SCCI int maxDoorProgress = 10000000; // 开关门最大进度
  17. SCCI int maxChestProgress = 10000000; // 宝箱最大进度
  18. SCCI int maxGateProgress = 18000; // 大门最大进度
  19. SCCI int numOfRequiredClassroomForGate = 7; // 打开大门需要完成的教室数量
  20. SCCI int numOfRequiredClassroomForHiddenGate = 3; // 打开隐藏门需要完成的教室数量
  21. // 人物属性相关
  22. SCCI int basicEncourageSpeed = 100;
  23. SCCI int basicFixSpeed = 123;
  24. SCCI int basicSpeedOfOpeningOrLocking = 4000;
  25. SCCI int basicStudentSpeedOfClimbingThroughWindows = 611;
  26. SCCI int basicTrickerSpeedOfClimbingThroughWindows = 1270;
  27. SCCI int basicSpeedOfOpenChest = 1000;
  28. SCCI int basicHp = 3000000;
  29. SCCI int basicMaxGamingAddiction = 60000;
  30. SCCI int basicEncouragementDegree = 1500000;
  31. SCCI int basicTimeOfRouse = 1000;
  32. SCCI int basicStudentSpeed = 1270;
  33. SCCI int basicTrickerSpeed = 1504;
  34. SCCI double basicConcealment = 1;
  35. SCCI int basicStudentAlertnessRadius = 15 * numOfGridPerCell;
  36. SCCI int basicTrickerAlertnessRadius = 17 * numOfGridPerCell;
  37. SCCI int basicStudentViewRange = 10 * numOfGridPerCell;
  38. SCCI int basicTrickerViewRange = 13 * numOfGridPerCell;
  39. SCCI int PinningDownRange = 5 * numOfGridPerCell;
  40. SCCI int maxNumOfProp = 3; // 人物道具栏容量
  41. // 攻击相关
  42. SCCI int basicApOfTricker = 1500000;
  43. SCCI int basicCD = 3000; // 初始子弹冷却
  44. SCCI int basicCastTime = 500; // 基本前摇时间
  45. SCCI int basicBackswing = 800; // 基本后摇时间
  46. SCCI int basicRecoveryFromHit = 3700; // 基本命中攻击恢复时长
  47. SCCI int basicStunnedTimeOfStudent = 4300;
  48. SCCI int basicBulletMoveSpeed = 3700; // 基本子弹移动速度
  49. SCCI double basicRemoteAttackRange = 3000; // 基本远程攻击范围
  50. SCCI double basicAttackShortRange = 1100; // 基本近程攻击范围
  51. SCCI double basicBulletBombRange = 1000; // 基本子弹爆炸范围
  52. // 道具相关
  53. SCCI int apPropAdd = basicApOfTricker * 12 / 10;
  54. SCCI int apSpearAdd = basicApOfTricker * 6 / 10;
  55. // 职业相关
  56. struct Assassin
  57. {
  58. SCCI int moveSpeed = basicTrickerSpeed * 11 / 10;
  59. SCCI double concealment = 1.5;
  60. SCCI int alertnessRadius = basicTrickerAlertnessRadius * 13 / 10;
  61. SCCI int viewRange = basicTrickerViewRange * 12 / 10;
  62. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  63. SCCI int speedOfClimbingThroughWindows = basicTrickerSpeedOfClimbingThroughWindows;
  64. SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
  65. };
  66. struct Klee
  67. {
  68. SCCI int moveSpeed = basicTrickerSpeed;
  69. SCCI double concealment = 1;
  70. SCCI int alertnessRadius = basicTrickerAlertnessRadius;
  71. SCCI int viewRange = basicTrickerViewRange;
  72. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  73. SCCI int speedOfClimbingThroughWindows = basicTrickerSpeedOfClimbingThroughWindows;
  74. SCCI int speedOfOpenChest = basicSpeedOfOpenChest * 11 / 10;
  75. };
  76. struct ANoisyPerson
  77. {
  78. SCCI int moveSpeed = (int)(basicTrickerSpeed * 1.07);
  79. SCCI double concealment = 0.8;
  80. SCCI int alertnessRadius = basicTrickerAlertnessRadius * 9 / 10;
  81. SCCI int viewRange = basicTrickerViewRange;
  82. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  83. SCCI int speedOfClimbingThroughWindows = basicTrickerSpeedOfClimbingThroughWindows * 11 / 10;
  84. SCCI int speedOfOpenChest = basicSpeedOfOpenChest * 11 / 10;
  85. };
  86. struct Idol
  87. {
  88. SCCI int moveSpeed = basicTrickerSpeed;
  89. SCCI double concealment = 0.75;
  90. SCCI int alertnessRadius = basicTrickerAlertnessRadius;
  91. SCCI int viewRange = basicTrickerViewRange * 11 / 10;
  92. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  93. SCCI int speedOfClimbingThroughWindows = basicTrickerSpeedOfClimbingThroughWindows;
  94. SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
  95. };
  96. struct Athlete
  97. {
  98. SCCI int moveSpeed = basicStudentSpeed * 105 / 100;
  99. SCCI int maxHp = basicHp;
  100. SCCI int maxAddiction = basicMaxGamingAddiction * 9 / 10;
  101. SCCI int fixSpeed = basicFixSpeed * 6 / 10;
  102. SCCI int encourageSpeed = basicEncourageSpeed * 9 / 10;
  103. SCCI double concealment = 0.9;
  104. SCCI int alertnessRadius = basicStudentAlertnessRadius;
  105. SCCI int viewRange = basicStudentViewRange * 11 / 10;
  106. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  107. SCCI int speedOfClimbingThroughWindows = basicStudentSpeedOfClimbingThroughWindows * 12 / 10;
  108. SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
  109. };
  110. struct Teacher
  111. {
  112. SCCI int moveSpeed = basicStudentSpeed * 9 / 10;
  113. SCCI int maxHp = basicHp * 10;
  114. SCCI int maxAddiction = basicMaxGamingAddiction * 10;
  115. SCCI int fixSpeed = basicFixSpeed * 0;
  116. SCCI int encourageSpeed = basicEncourageSpeed * 8 / 10;
  117. SCCI double concealment = 0.5;
  118. SCCI int alertnessRadius = basicStudentAlertnessRadius / 2;
  119. SCCI int viewRange = basicStudentViewRange * 9 / 10;
  120. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  121. SCCI int speedOfClimbingThroughWindows = basicStudentSpeedOfClimbingThroughWindows / 2;
  122. SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
  123. };
  124. struct StraightAStudent
  125. {
  126. SCCI int moveSpeed = basicStudentSpeed * 96 / 100;
  127. SCCI int maxHp = basicHp * 11 / 10;
  128. SCCI int maxAddiction = basicMaxGamingAddiction * 13 / 10;
  129. SCCI int fixSpeed = basicFixSpeed * 11 / 10;
  130. SCCI int encourageSpeed = basicEncourageSpeed;
  131. SCCI double concealment = 0.9;
  132. SCCI int alertnessRadius = basicStudentAlertnessRadius * 9 / 10;
  133. SCCI int viewRange = basicStudentViewRange * 9 / 10;
  134. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  135. SCCI int speedOfClimbingThroughWindows = basicStudentSpeedOfClimbingThroughWindows * 10 / 12;
  136. SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
  137. };
  138. struct Robot
  139. {
  140. SCCI int moveSpeed = basicStudentSpeed;
  141. SCCI int maxHp = basicHp * 0.4;
  142. SCCI int maxAddiction = basicMaxGamingAddiction * 0;
  143. SCCI int fixSpeed = basicFixSpeed;
  144. SCCI int encourageSpeed = 0;
  145. SCCI double concealment = 1;
  146. SCCI int alertnessRadius = basicStudentAlertnessRadius * 1;
  147. SCCI int viewRange = basicStudentViewRange;
  148. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  149. SCCI int speedOfClimbingThroughWindows = 1;
  150. SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
  151. };
  152. struct TechOtaku
  153. {
  154. SCCI int moveSpeed = basicStudentSpeed * 3 / 4;
  155. SCCI int maxHp = basicHp * 9 / 10;
  156. SCCI int maxAddiction = basicMaxGamingAddiction * 11 / 10;
  157. SCCI int fixSpeed = basicFixSpeed * 11 / 10;
  158. SCCI int encourageSpeed = basicEncourageSpeed * 9 / 10;
  159. SCCI double concealment = 1;
  160. SCCI int alertnessRadius = basicStudentAlertnessRadius;
  161. SCCI int viewRange = basicStudentViewRange * 9 / 10;
  162. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  163. SCCI int speedOfClimbingThroughWindows = basicStudentSpeedOfClimbingThroughWindows * 3 / 4;
  164. SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
  165. };
  166. struct Sunshine
  167. {
  168. SCCI int moveSpeed = basicStudentSpeed;
  169. SCCI int maxHp = basicHp * 32 / 30;
  170. SCCI int maxAddiction = basicMaxGamingAddiction * 11 / 10;
  171. SCCI int fixSpeed = basicFixSpeed;
  172. SCCI int encourageSpeed = basicEncourageSpeed * 12 / 10;
  173. SCCI double concealment = 1;
  174. SCCI int alertnessRadius = basicStudentAlertnessRadius;
  175. SCCI int viewRange = basicStudentViewRange;
  176. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking * 7 / 10;
  177. SCCI int speedOfClimbingThroughWindows = basicStudentSpeedOfClimbingThroughWindows;
  178. SCCI int speedOfOpenChest = basicSpeedOfOpenChest * 9 / 10;
  179. };
  180. // 技能相关
  181. SCCI int maxNumOfSkill = 3;
  182. SCCI int commonSkillCD = 30000; // 普通技能标准冷却时间
  183. SCCI int commonSkillTime = 10000; // 普通技能标准持续时间
  184. SCCI int timeOfTrickerStunnedWhenCharge = 7220;
  185. SCCI int timeOfStudentStunnedWhenCharge = 2090;
  186. SCCI int timeOfTrickerStunnedWhenPunish = 3070;
  187. SCCI int timeOfTrickerSwingingAfterHowl = 800;
  188. SCCI int timeOfStudentStunnedWhenHowl = 5500;
  189. SCCI int timeOfStunnedWhenJumpyDumpty = 3070;
  190. SCCI double addedTimeOfSpeedWhenInspire = 1.6;
  191. SCCI int timeOfAddingSpeedWhenInspire = 6000;
  192. SCCI int addHpWhenEncourage = basicHp / 4;
  193. SCCI int checkIntervalWhenShowTime = 200;
  194. SCCI int addAddictionPer100msWhenShowTime = 300;
  195. struct CanBeginToCharge
  196. {
  197. SCCI int skillCD = commonSkillCD * 2;
  198. SCCI int durationTime = commonSkillTime * 3 / 10;
  199. };
  200. struct BecomeInvisible
  201. {
  202. SCCI int skillCD = commonSkillCD * 4 / 3;
  203. SCCI int durationTime = commonSkillTime;
  204. };
  205. struct Punish
  206. {
  207. SCCI int skillCD = commonSkillCD * 1;
  208. SCCI int durationTime = commonSkillTime * 0;
  209. };
  210. struct Rouse
  211. {
  212. SCCI int skillCD = commonSkillCD * 4;
  213. SCCI int durationTime = commonSkillTime * 0;
  214. };
  215. struct Encourage
  216. {
  217. SCCI int skillCD = commonSkillCD * 4;
  218. SCCI int durationTime = commonSkillTime * 0;
  219. };
  220. struct Inspire
  221. {
  222. SCCI int skillCD = commonSkillCD * 4;
  223. SCCI int durationTime = commonSkillTime * 0;
  224. };
  225. struct Howl
  226. {
  227. SCCI int skillCD = commonSkillCD * 25 / 30;
  228. SCCI int durationTime = commonSkillTime * 0;
  229. };
  230. struct ShowTime
  231. {
  232. SCCI int skillCD = commonSkillCD * 8 / 3;
  233. SCCI int durationTime = commonSkillTime * 1;
  234. };
  235. struct JumpyBomb
  236. {
  237. SCCI int skillCD = commonSkillCD / 2;
  238. SCCI int durationTime = commonSkillTime * 3 / 10;
  239. };
  240. struct UseKnife
  241. {
  242. SCCI int skillCD = commonSkillCD * 1;
  243. SCCI int durationTime = commonSkillTime / 10;
  244. };
  245. struct UseRobot
  246. {
  247. SCCI int skillCD = commonSkillCD / 300;
  248. SCCI int durationTime = commonSkillTime * 0;
  249. };
  250. struct WriteAnswers
  251. {
  252. SCCI int skillCD = commonSkillCD * 1;
  253. SCCI int durationTime = commonSkillTime * 0;
  254. };
  255. struct SummonGolem
  256. {
  257. SCCI int skillCD = commonSkillCD * 1;
  258. SCCI int durationTime = commonSkillTime * 0;
  259. };
  260. } // namespace Constants
  261. #endif