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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  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 = 15 * 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 * 11 / 10;
  99. SCCI int maxHp = basicHp;
  100. SCCI int maxAddiction = basicMaxGamingAddiction * 9 / 10;
  101. SCCI int fixSpeed = basicFixSpeed * 6 / 10;
  102. SCCI int encourageSpeed = basicEncourageSpeed * 8 / 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 * 3 / 4;
  113. SCCI int maxHp = basicHp * 10;
  114. SCCI int maxAddiction = basicMaxGamingAddiction * 10;
  115. SCCI int fixSpeed = basicFixSpeed * 0;
  116. SCCI int encourageSpeed = basicEncourageSpeed * 7 / 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 * 8 / 10;
  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 * 8 / 10;
  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 = basicEncourageSpeed * 8 / 10;
  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 * 2;
  173. SCCI double concealment = 1;
  174. SCCI int alertnessRadius = basicStudentAlertnessRadius;
  175. SCCI int viewRange = basicStudentViewRange;
  176. SCCI int speedOfOpeningOrLocking = basicSpeedOfOpeningOrLocking;
  177. SCCI int speedOfClimbingThroughWindows = basicStudentSpeedOfClimbingThroughWindows;
  178. SCCI int speedOfOpenChest = basicSpeedOfOpenChest;
  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 = 0.6;
  191. SCCI int timeOfAddingSpeedWhenInspire = 6000;
  192. struct CanBeginToCharge
  193. {
  194. SCCI int skillCD = commonSkillCD * 4 / 3;
  195. SCCI int durationTime = commonSkillTime * 1;
  196. };
  197. struct BecomeInvisible
  198. {
  199. SCCI int skillCD = commonSkillCD * 2;
  200. SCCI int durationTime = commonSkillTime * 6 / 10;
  201. };
  202. struct Punish
  203. {
  204. SCCI int skillCD = commonSkillCD * 1;
  205. SCCI int durationTime = commonSkillTime * 0;
  206. };
  207. struct Rouse
  208. {
  209. SCCI int skillCD = commonSkillCD * 2;
  210. SCCI int durationTime = commonSkillTime * 0;
  211. };
  212. struct Encourage
  213. {
  214. SCCI int skillCD = commonSkillCD * 2;
  215. SCCI int durationTime = commonSkillTime * 0;
  216. };
  217. struct Inspire
  218. {
  219. SCCI int skillCD = commonSkillCD * 2;
  220. SCCI int durationTime = commonSkillTime * 0;
  221. };
  222. struct Howl
  223. {
  224. SCCI int skillCD = commonSkillCD * 25 / 30;
  225. SCCI int durationTime = commonSkillTime * 0;
  226. };
  227. struct ShowTime
  228. {
  229. SCCI int skillCD = commonSkillCD * 3;
  230. SCCI int durationTime = commonSkillTime * 1;
  231. };
  232. struct JumpyBomb
  233. {
  234. SCCI int skillCD = commonSkillCD / 2;
  235. SCCI int durationTime = commonSkillTime * 3 / 10;
  236. };
  237. struct UseKnife
  238. {
  239. SCCI int skillCD = commonSkillCD * 1;
  240. SCCI int durationTime = commonSkillTime / 10;
  241. };
  242. struct UseRobot
  243. {
  244. SCCI int skillCD = commonSkillCD / 300;
  245. SCCI int durationTime = commonSkillTime * 0;
  246. };
  247. struct WriteAnswers
  248. {
  249. SCCI int skillCD = commonSkillCD * 1;
  250. SCCI int durationTime = commonSkillTime * 0;
  251. };
  252. struct SummonGolem
  253. {
  254. SCCI int skillCD = commonSkillCD * 1;
  255. SCCI int durationTime = commonSkillTime * 0;
  256. };
  257. } // namespace Constants
  258. #endif