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.

GameRules.md 21 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418
  1. # 规则
  2. V6.0
  3. - [规则](#规则)
  4. - [简则](#简则)
  5. - [地图](#地图)
  6. - [人物](#人物)
  7. - [攻击](#攻击)
  8. - [交互](#交互)
  9. - [学习与毕业](#学习与毕业)
  10. - [勉励](#勉励)
  11. - [沉迷与唤醒](#沉迷与唤醒)
  12. - [门](#门)
  13. - [窗](#窗)
  14. - [箱子](#箱子)
  15. - [信息相关](#信息相关)
  16. - [可视范围](#可视范围)
  17. - [道具](#道具)
  18. - [得分](#得分)
  19. - [捣蛋鬼](#捣蛋鬼)
  20. - [学生](#学生)
  21. - [职业与技能](#职业与技能)
  22. - [捣蛋鬼](#捣蛋鬼-1)
  23. - [Assassin](#assassin)
  24. - [Klee](#klee)
  25. - [喧哗者ANoisyPerson](#喧哗者anoisyperson)
  26. - [Idol](#idol)
  27. - [学生(\&老师)](#学生老师)
  28. - [运动员](#运动员)
  29. - [教师](#教师)
  30. - [学霸](#学霸)
  31. - [机器人Robot](#机器人robot)
  32. - [技术宅TechOtaku](#技术宅techotaku)
  33. - [开心果](#开心果)
  34. - [细则](#细则)
  35. - [特殊说明](#特殊说明)
  36. - [移动](#移动)
  37. - [人物](#人物-1)
  38. - [初始状态](#初始状态)
  39. - [道具](#道具-1)
  40. - [交互](#交互-1)
  41. - [学习与毕业](#学习与毕业-1)
  42. - [攻击](#攻击-1)
  43. - [沉迷与唤醒](#沉迷与唤醒-1)
  44. - [门](#门-1)
  45. - [窗](#窗-1)
  46. - [箱子](#箱子-1)
  47. - [得分](#得分-1)
  48. - [信息相关](#信息相关-1)
  49. - [技能](#技能)
  50. - [职业](#职业)
  51. ## 简则
  52. - 每场比赛分为上下两个半场,上下半场双方换边
  53. - 单局比赛分为学生阵营(4 人)和捣蛋鬼阵营(1 人)
  54. - 最终将两场比赛己方所得分数相加,高者获胜
  55. ### 地图
  56. - 地图为矩形区域,游戏对象坐标为(x, y),x和y均为整数。
  57. - **x坐标轴正方向竖直向下,y坐标轴正方向水平向右**;
  58. - **极坐标以x坐标轴为极轴,角度逆时针为正方向**。
  59. - 地图由50 * 50个格子构成,每个格子代表1000 * 1000的正方形。每个格子的编号(CellX,CellY)可以计算得到:
  60. $$
  61. CellX=\frac{x}{1000},CellY=\frac{y}{1000}
  62. $$
  63. - 格子有对应区域类型:陆地、墙、草地、教室、校门、隐藏校门、门、窗、箱子
  64. - 任何格子的区域类型(PlaceType)始终不变,所有隐藏校门刷新点的区域类型均为隐藏校门
  65. ### 人物
  66. - 人物直径为800
  67. - 人物共有17种不可叠加的状态:
  68. 1. (可)移动状态 Idel
  69. 2. 学习 Learning
  70. 3. 被勉励 Encouraged
  71. 4. 在勉励 Encouraging
  72. 5. 开或锁门 Locking
  73. 6. 翻箱 Rummaging
  74. 7. 使用技能 UsingSpecialSkill
  75. 8. 开启校门 OpeningAGate
  76. 9. 唤醒他人中 Rousing
  77. - 之后八项为不可接受指令状态
  78. 1. 被唤醒中 Roused
  79. 2. 沉迷 Addicted
  80. 3. 退学 Quit
  81. 4. 毕业 Graduated
  82. 5. 被眩晕 Stunned
  83. 6. 前摇 Attacking
  84. 7. 后摇 Swinging
  85. 8. 翻窗 Climbing
  86. ### 攻击
  87. - 攻击距离是指攻击(子弹)的移动距离,也就是说理论上最远被攻击的学生的中心与捣蛋鬼的中心=学生的半径+捣蛋鬼的半径+攻击距离+子弹半径(200)*2
  88. - 蹦蹦炸弹BombBomb与strike攻击未写完的作业,会造成对应攻击力的损坏
  89. - 捣蛋鬼攻击交互状态或前后摇的学生,将使学生眩晕4.3s
  90. - 蹦蹦炸弹BombBomb可以攻击使门被打开
  91. | 攻击(子弹)类型 |搞蛋鬼的一般攻击CommonAttackOfTricker|飞刀FlyingKnife | 蹦蹦炸弹BombBomb | 小炸弹JumpyDumpty | strike |
  92. | :--------------------- | :---------------------| :--------------------- | :--------------------- | :--------------------- | :--------------------- |
  93. | 子弹爆炸范围 | 0 | 0 | 2000 | 1000 | 0 |
  94. | 子弹攻击距离 | 2200 | 78000 | 2200 | 1800 | 2000 |
  95. | 攻击力 | 1500000 | 1200000 | 1800000 | 900000 | 1600000 |
  96. | 移动速度/s | 7400 | 18500 | 6000 | 8600 | 6250 |
  97. | 前摇(ms) | 297 | 600 | 366 | - | 320 |
  98. |未攻击至目标时的后摇(ms)| 800 | 0 | 1200 | - | 800 |
  99. |攻击至目标时的后摇(ms) | 3700 | 0 | 3700 | - | 3700 |
  100. | CD(ms) | 800 | 600 | 3000 | - | 800 |
  101. | 最大子弹容量 | 1 | 1 | 1 | - | 1 |
  102. ### 交互
  103. - 除了翻窗,交互目标与交互者在一个**九宫格**方可交互
  104. - 交互进度每毫秒增加对应交互速度的值
  105. - 作业,门,箱子完成/开启进度达到10000000为完成
  106. - 校门开启进度达到18000为完成
  107. #### 学习与毕业
  108. - 共有10间教室,学生需要完成**7间**教室的作业,才可以开启校门。
  109. - 开启校门需要18秒,开启进度不清空
  110. - **3间**教室的作业完成时,隐藏校门会在刷新点之一随机显现;当只剩1名学生时,隐藏校门自动打开。
  111. - 从开启的校门或隐藏校门毕业是学生终极目标
  112. #### 勉励
  113. - 当被勉励程度达到当前损失的毅力值或1500000时,勉励完成,学生毅力增加对应被勉励程度。
  114. - 勉励中断时,被勉励程度保留;遭到攻击时被勉励程度清空
  115. #### 沉迷与唤醒
  116. - 学习毅力归零时,学生进入沉迷状态,每毫秒增加1沉迷度
  117. - 唤醒需要1秒,之后学习毅力恢复至1/2。沉迷程度不清空。
  118. - 进入沉迷状态时,如果学生原沉迷程度在(0,该玩家最大沉迷度/3)中,沉迷程度直接变为其最大沉迷度/3;原沉迷程度在[其最大沉迷度/3,其最大沉迷度x2/3)中,沉迷程度直接变为其最大沉迷度x2/3;原沉迷程度大于其最大沉迷度x2/3,从游戏中出局;
  119. - 当学生沉迷程度达到其最大沉迷程度时,从游戏中出局
  120. #### 门
  121. - 门分别属于三个教学区:三教,五教,六教
  122. - 拥有对应教学区的钥匙才能开锁对应的门
  123. - 锁门过程中,门所在格子内有人会使锁门过程中断
  124. #### 窗
  125. - 翻窗时玩家应当在窗前后一个格子内
  126. #### 箱子
  127. - 开箱后将有2个随机道具掉落在玩家位置。
  128. ### 信息相关
  129. - Bgm (在structures.h/.py中的student类或Tricker类中作为其属性)
  130. 1. 不详的感觉(dangerAlert):如果捣蛋鬼进入(学生的警戒半径/捣蛋鬼的隐蔽度)的距离,则学生的dangerAlert=(警戒半径/二者距离)
  131. 2. 期待搞事的感觉(trickDesire):如果有学生进入(捣蛋鬼的警戒半径/学生的隐蔽度)的距离,则捣蛋鬼trickDesire=(警戒半径/可被发觉的最近的学生距离)
  132. 3. 学习的声音(classVolume): 警戒半径内有人学习时,捣蛋鬼classVolume=((警戒半径x学习进度百分比)/最近二者距离)
  133. - 可以向每一个队友发送不超过256字节的信息
  134. ### 可视范围
  135. - 小于视野半径
  136. - 对于中心在草地中的物体,物体中心与玩家中心连线上均为草地方可见
  137. - 不在草地的物体,物体中心与玩家中心连线上无墙即可见
  138. ### 道具
  139. - 玩家同时最多拥有三个道具
  140. - 可以捡起与自己处于同一个格子(cell)的道具
  141. - 可将道具扔在玩家位置
  142. | 道具 | 对学生增益 | 学生得分条件 | 对搞蛋鬼增益 | 搞蛋鬼得分条件 |
  143. | :-------- | :-------------------------------------- | :-----------------| :-------------------------------------- |:-----------------|
  144. | Key3 | 能开启3教的门 |不得分| 能开启3教的门 |不得分|
  145. | Key5 | 能开启5教的门 |不得分| 能开启5教的门 |不得分|
  146. | Key6 | 能开启6教的门 |不得分| 能开启6教的门 |不得分|
  147. | AddSpeed | 2倍速,持续10s | 得分10| 2倍速,持续10s |得分10|
  148. | AddLifeOrClairaudience |若在10s内Hp归零,该增益消失以使Hp保留100|在10s内Hp归零,得分100 |10秒内得知全场玩家信息|得分10 |
  149. | AddHpOrAp |回血750000 | 回血成功,得分10 | 10秒内下一次攻击增伤1800000|不得分 |
  150. | ShieldOrSpear | 10秒内能抵挡一次伤害 | 10秒内成功抵挡一次伤害,得分50 |10秒内下一次攻击能破盾,如果对方无盾,则增伤900000| 10秒内破盾,得分50 |
  151. | RecoveryFromDizziness | 使用瞬间从眩晕状态中恢复 | 成功从眩晕状态中恢复,得分30|使用瞬间从眩晕状态中恢复 | 成功从眩晕状态中恢复,得分30|
  152. ## 得分
  153. ### 捣蛋鬼
  154. - 对学生造成伤害时,得伤害*100/基本伤害(1500000)分。
  155. - 对作业造成破坏时,每破坏n%的作业,得n分
  156. - 使学生沉迷时,得50分。
  157. - 使学生眩晕时,得20*眩晕时长(/s)分。
  158. - 每淘汰一个学生,得1000分
  159. - 摧毁一个TechOtaku的机器人,得50分。
  160. ### 学生
  161. - 学生每完成n%的作业,得2n分
  162. - 学生与捣蛋鬼处于小于5000的距离认为在牵制状态,得(牵制时长(ms)*0.00246)分
  163. - 使捣蛋鬼进入眩晕状态时,得20*眩晕时长(/s)分。
  164. - 成功唤醒一名同学,得100分
  165. - 成功勉励一名同学,得50*勉励程度/基本勉励程度(1500000)分
  166. - 毕业,得1000分
  167. ## 职业与技能
  168. ### 捣蛋鬼
  169. | 捣蛋鬼职业 | Assassin | Klee | 喧哗者ANoisyPerson | Idol |
  170. | :------------ | :--------------------- | :--------------------- | :--------------------- | :--------------------- |
  171. | 移动速度/s | 3960 | 3600 | 3852 | 3600 |
  172. | 隐蔽度 | 1.5 | 1 | 0.8 | 0.75 |
  173. | 警戒范围 | 22100 | 17000 | 15300 | 17000 |
  174. | 视野范围 | 15600 | 13000 | 13000 | 14300 |
  175. | 开锁门速度/ms| 5000 | 5000 | 5000 | 5000 |
  176. | 翻窗速度/s | 2540 | 2540 | 2794 | 2540 |
  177. | 翻箱速度/ms | 1250 | 1375 | 1250 | 1250 |
  178. #### Assassin
  179. - 普通攻击为 CommonAttackOfTricker
  180. - 主动技能
  181. 0. 隐身 BecomeInvisible
  182. - CD:40s 持续时间:10s
  183. - 在持续时间内玩家隐身,人物状态进入UsingSpecialSkill,进入其他状态会使得隐身状态解除
  184. - 使用瞬间得分15
  185. 1. 使用飞刀
  186. - CD:30s 持续时间:1s
  187. - 在持续时间内,攻击类型变为飞刀
  188. - 不直接得分
  189. #### Klee
  190. - 普通攻击为 CommonAttackOfTricker
  191. - 主动技能
  192. 0. 蹦蹦炸弹 JumpyBomb
  193. - CD:15s 持续时间:3s
  194. - 在持续时间内,攻击类型变为蹦蹦炸弹
  195. - 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,120°,150°,180°,210°,240°,270° 发出7个小炸弹
  196. - 小炸弹运动停止前会因为碰撞爆炸,停止运动后学生碰撞会造成眩晕3.07s
  197. - 不直接得分,通过眩晕等获得对应得分
  198. 1. SparksNSplash:
  199. - CD:45s, 持续时间:10s
  200. - 技能使用瞬间,对于输入的额外参数PlayerID代表的角色,距离最近的本已停止运动的小炸弹开始追踪该角色(每100ms向该角色直线移动)(该角色无血量则失败)
  201. - 特性
  202. - 开局获得随机的一个道具(不会是钥匙)
  203. #### 喧哗者ANoisyPerson
  204. - 普通攻击为 strike
  205. - 主动技能
  206. 0. 嚎叫 Howl
  207. - CD:25s
  208. - 使用瞬间,在视野半径范围内(不是可视区域)的学生被眩晕5500ms,自己进入800ms的后摇
  209. - 通过眩晕获得对应得分
  210. - 特性
  211. - 在场所有学生Bgm系统被设为无用的值
  212. #### Idol
  213. - 普通攻击为 CommonAttackOfTricker
  214. - 主动技能
  215. 0. ShowTime
  216. - CD: 80s 持续时间:10s
  217. - 持续时间内
  218. - 使警戒范围外的学生眩晕并每500ms发送向自己移动500ms的指令(速度为学生本应速度*二者距离/警戒范围)
  219. - 对于视野范围(不是可视区域)内的学生每500ms加1500的沉迷度
  220. - 捣蛋鬼变为0.8倍速"
  221. ### 学生(&老师)
  222. | 学生职业 | 教师Teacher | 健身狂Athlete |学霸StraightAStudent | 开心果Sunshine | 机器人Robot | 技术宅TechOtaku |
  223. | :------------ | :------------------ | :------------------ | :------------------ | :------------------ | :------------------ | :------------------ |
  224. | 移动速度/s | 2700 | 3150 | 2880 | 3000 | 2700 | 2880 |
  225. | 最大毅力值 | 30000000 | 3000000 | 3300000 | 3200000 | 900000 | 2700000 |
  226. | 最大沉迷度 | 600000 | 54000 | 78000 | 60000 | 0 | 60000 |
  227. | 学习速度/ms | 50 | 73 | 135 | 123 | 85 | 110 |
  228. | 勉励速度/ms | 80 | 90 | 100 | 120 | 0 | 100 |
  229. | 隐蔽度 | 0.5 | 0.9 | 0.9 | 0.8 | 0.8 | 1.1 |
  230. | 警戒范围 | 10000 | 15000 | 13500 | 15000 | 0 | 15000 |
  231. | 视野范围 | 9000 | 11000 | 9000 | 10000 | 0 | 9000 |
  232. | 开锁门速度/ms | 5000 | 5000 | 5000 | 3500 | 0 | 5000 |
  233. | 翻窗速度/ms | 1000 | 1466 | 1018 | 1222 | 1 | 1100 |
  234. | 翻箱速度/ms | 1250 | 1250 | 1250 | 1125 | 1000 | 1100 |
  235. #### 运动员
  236. - 主动技能
  237. 0. 冲撞 CanBeginToCharge
  238. - CD:60s 持续时间:3s
  239. - 在持续时间内,速度变为三倍,期间撞到捣蛋鬼,会导致捣蛋鬼眩晕7.22s,学生眩晕2.09s
  240. - 通过眩晕获得对应得分
  241. #### 教师
  242. - 主动技能
  243. 0. 惩罚 Punish
  244. - CD:45s
  245. - 使用瞬间,在视野距离/3范围内(不是可视范围)的翻窗、开锁门、攻击前后摇、使用技能期间的捣蛋鬼会被眩晕
  246. $$
  247. (3070+\frac{500×已受伤害}{基本伤害(1500000)×2^{开局老师数量-1}})ms
  248. $$
  249. - 其眩晕得分为正常眩晕得分/2^开局老师数量-1^
  250. 1. 喝茶 HaveTea
  251. - CD:90s
  252. - 使用瞬间,向额外参数/1000.0的角度瞬移3000(可以穿墙),如果会碰撞则失败。
  253. - 特性
  254. - 无法获得牵制得分
  255. - 无法毕业
  256. - 扣血则得分$\frac{100×受到伤害}{基本伤害(1500000)×2^{开局老师数量-1}}$
  257. #### 学霸
  258. - 特性
  259. - 冥想
  260. - 当处于可接受指令状态且不在学习时,会积累“冥想进度”,速度为40/ms
  261. - 受到攻击(并非伤害)、进入学习状态或进入不可接受指令状态(包括翻窗)冥想进度清零
  262. - 主动技能
  263. 0. 写答案 WriteAnswers
  264. - CD:30s
  265. - 使用瞬间,对于可交互范围内的一间教室的作业增加冥想进度,冥想进度清零
  266. - 通过学习获得对应得分
  267. #### 机器人Robot
  268. - 特性
  269. - 无技能
  270. - 不可被眩晕
  271. - 不可毕业
  272. - 不可救人
  273. - 无牵制得分
  274. - 不可使用道具(可以捡起和扔道具)
  275. - 不沉迷,击中直接摧毁
  276. #### 技术宅TechOtaku
  277. - 特性
  278. - 一名TechOtaku最多可以在场上同时最多拥有3个Robot,无法共享视野
  279. - 主动技能
  280. 0. SummonGolem
  281. - CD:40s,持续时间:6s
  282. - 在持续时间中,学生进入人物状态进入UsingSpecialSkill(不能移动),进入其他状态会导致制作机器人失败。
  283. - 在持续时间中,学生面前生成道具CraftingBench;学生进入其他状态或该道具被碰撞后,CraftingBench消失且制作机器人失败。
  284. - 持续时间结束后,道具CraftingBench所在位置生成一个Robot,CraftingBench消失
  285. - TechOtaku的Robot的PlayerId = TechOtaku的PlayerId + n×5(一局游戏理论人数),其中1<=n<=3(自己的n为0)
  286. - 新造的Robot的PlayerId的n总是尽量小
  287. 1. UseRobot
  288. - CD:2s,持续时间:0s
  289. - 输入额外参数PlayerID,切换到要使用的角色。
  290. - 切换到其他角色时,自己进入UsingSkill状态。
  291. #### 开心果
  292. - 主动技能
  293. 0. 唤醒 Rouse
  294. - CD:120s
  295. - 使用瞬间,唤醒可视范围内一个沉迷中的人
  296. - 通过唤醒获得对应得分
  297. 1. 勉励 Encourage
  298. - CD:120s
  299. - 使用瞬间,为可视范围内随机一个毅力不足的人试图补充750000的毅力值
  300. - 获得勉励750000的毅力值对应得分
  301. 2. 鼓舞 Inspire
  302. - CD:120s
  303. - 使用瞬间,可视范围内学生(包括自己)获得持续6秒的1.6倍速Buff
  304. - 每鼓舞一个学生得分10
  305. ## 细则
  306. ### 特殊说明
  307. - 不加说明,这里“学生”往往包括职业“教师”
  308. ### 移动
  309. - 不鼓励选手面向地图编程,因为移动过程中你可以受到多种干扰使得移动结果不符合你的预期;因此建议小步移动,边移动边考虑之后的行为。
  310. ### 人物
  311. - 眩晕状态中的玩家不能再次被眩晕(除非是ShowTime)
  312. ### 初始状态
  313. - 初赛玩家出生点固定且一定为空地
  314. ### 道具
  315. - 使用钥匙相当于销毁
  316. - 可接受指令状态下能捡起或扔道具,在场上即可使用道具
  317. ### 交互
  318. - 被唤醒或被勉励不属于交互状态,翻窗属于交互状态
  319. ### 学习与毕业
  320. - 一个校门同时最多可以由一人开启
  321. - 校门对于人有碰撞体积
  322. - 隐藏校门显现后对于人有碰撞体积
  323. ### 攻击
  324. - 无论近战远程均产生bullet表示攻击
  325. - 前摇期间攻击被打断时,子弹消失。
  326. - 每次学生受到攻击后会损失对应子弹的攻击力的学习毅力
  327. - 此处,前摇指 从播放攻击动作开始 攻击者不能交互 的时间
  328. ### 沉迷与唤醒
  329. - 不能两人同时唤醒一个人
  330. - 在被救时沉迷度不增加
  331. ### 门
  332. - 每个教学区都有2把钥匙
  333. - 一扇门只允许同时一个人开锁门
  334. - 开锁门未完成前,门状态表现为原来的状态
  335. - 开锁门进度中断后清空
  336. ### 窗
  337. - 由于窗户被占用导致翻窗失败会使先前行动停止
  338. - 翻越窗户是一种交互行为,翻窗一共有两个过程
  339. - 跳上窗:从当前位置到窗边缘中点,位置瞬移,时间=距离/爬窗速度。中断时,停留在原位置
  340. - 爬窗:从窗一侧边缘中点到另一侧格子中心,位置渐移,时间=距离/爬窗速度。中断时,停留在另一侧格子中心
  341. - 攻击可以穿过窗,道具可以在窗上
  342. - 有人正在翻越窗户时,其他玩家均不可以翻越该窗户。
  343. - 通常情况下捣蛋鬼翻越窗户的速度高于学生。
  344. ### 箱子
  345. - 地图上有8个箱子
  346. - 同一时刻只允许一人进行开启
  347. - 未开启完成的箱子在下一次需要重新开始开启。
  348. - 箱子开启后其中道具才可以被观测和拿取
  349. - 箱子道具不刷新
  350. ### 得分
  351. - 眩晕或毅力值归零时无牵制得分
  352. ### 信息相关
  353. - Bgm在没有符合条件的情况下,值为0。
  354. - 不能给自己发信息
  355. ### 技能
  356. - CD冷却计时是在开始使用技能的瞬间开始的
  357. - Klee的小炸弹不受道具增益影响
  358. - 除了切换攻击类型的技能,在不能执行指令的状态下(包括翻窗)均不能使用技能
  359. ### 职业
  360. - 学生职业可以重复选择