# 规则 V5.0.1 - [规则](#规则) - [简则](#简则) - [地图](#地图) - [人物](#人物) - [攻击](#攻击) - [交互](#交互) - [学习与毕业](#学习与毕业) - [勉励](#勉励) - [沉迷与唤醒](#沉迷与唤醒) - [门](#门) - [窗](#窗) - [箱子](#箱子) - [信息相关](#信息相关) - [可视范围](#可视范围) - [道具](#道具) - [得分](#得分) - [捣蛋鬼](#捣蛋鬼) - [学生](#学生) - [职业与技能](#职业与技能) - [捣蛋鬼](#捣蛋鬼-1) - [Assassin](#assassin) - [Klee](#klee) - [喧哗者ANoisyPerson](#喧哗者anoisyperson) - [Idol](#idol) - [学生(\&老师)](#学生老师) - [运动员](#运动员) - [教师](#教师) - [学霸](#学霸) - [开心果](#开心果) - [细则](#细则) - [特殊说明](#特殊说明) - [移动](#移动) - [人物](#人物-1) - [初始状态](#初始状态) - [道具](#道具-1) - [交互](#交互-1) - [学习与毕业](#学习与毕业-1) - [攻击](#攻击-1) - [沉迷与唤醒](#沉迷与唤醒-1) - [门](#门-1) - [窗](#窗-1) - [箱子](#箱子-1) - [得分](#得分-1) - [信息相关](#信息相关-1) - [技能](#技能) - [职业](#职业) ## 简则 - 每场比赛分为上下两个半场,上下半场双方换边 - 单局比赛分为学生阵营(4 人)和捣蛋鬼阵营(1 人) - 最终将两场比赛己方所得分数相加,高者获胜 ### 地图 - 地图为矩形区域,游戏对象坐标为(x, y),x和y均为整数。 - **x坐标轴正方向竖直向下,y坐标轴正方向水平向右**; - **极坐标以x坐标轴为极轴,角度逆时针为正方向**。 - 地图由50 * 50个格子构成,每个格子代表1000 * 1000的正方形。每个格子的编号(CellX,CellY)可以计算得到: $$ CellX=\frac{x}{1000},CellY=\frac{y}{1000} $$ - 格子有对应区域类型:陆地、墙、草地、教室、校门、隐藏校门、门、窗、箱子 ### 人物 - 人物直径为800 - 人物共有17种不可叠加的状态: 1. (可)移动状态 Idel 2. 学习 Learning 3. 被勉励 Encouraged 4. 在勉励 Encouraging 5. 开或锁门 Locking 6. 翻箱 Rummaging 7. 使用技能 UsingSpecialSkill 8. 开启校门 OpeningAGate 9. 唤醒他人中 Rousing - 之后八项为不可接受指令状态 1. 被唤醒中 Roused 2. 沉迷 Addicted 3. 退学 Quit 4. 毕业 Graduated 5. 被眩晕 Stunned 6. 前摇 Attacking 7. 后摇 Swinging 8. 翻窗 Climbing ### 攻击 - 攻击类型CommonAttackOfGhost攻击未写完的作业,会造成对应攻击力的损坏 - 捣蛋鬼攻击交互状态或前后摇的学生,将使学生眩晕4.3s | 攻击(子弹)类型 |搞蛋鬼的一般攻击CommonAttackOfGhost| 飞刀FlyingKnife | 蹦蹦炸弹BombBomb | 小炸弹JumpyDumpty | | :------------ | :--------------------- | :--------------------- | :--------------------- | :--------------------- | | 子弹爆炸范围 | 0 | 0 | 2000 | 1000 | | 子弹攻击距离 | 2200 | 78000 | 2200 | 4400 | | 攻击力 | 1500000 | 1200000 | 1800000 | 900000 | | 移动速度/s | 7400 | 18500 | 6000 | 8600 | | 前摇(ms) | 297 | 400 | 366 | - | |未攻击至目标时的后摇(ms)| 800 | 0 | 3700 | - | |攻击至目标时的后摇(ms)| 3700 | 0 | 3700 | - | | CD(ms) | 800 | 400 | 3000 | - | | 最大子弹容量 | 1 | 1 | 1 | - | ### 交互 - 除了翻窗,交互目标与交互者在一个**九宫格**方可交互 - 交互进度每毫秒增加对应交互速度的值 - 作业,门,箱子完成/开启进度达到10000000为完成 #### 学习与毕业 - 共有10间教室,学生需要完成**7间**教室的作业,才可以开启校门。 - 开启校门需要18秒,开启进度不清空 - **3间**教室的作业完成时,隐藏校门会在刷新点之一随机显现;当只剩1名学生时,隐藏校门自动打开。 - 从开启的校门或隐藏校门毕业是学生终极目标 #### 勉励 - 当被勉励程度达到当前损失的毅力值或1500000时,勉励完成,学生毅力增加对应被勉励程度。 - 勉励中断时,被勉励程度保留;遭到攻击时被勉励程度清空 #### 沉迷与唤醒 - 学习毅力归零时,学生进入沉迷状态,每毫秒增加1沉迷度 - 唤醒需要1秒,之后学习毅力恢复至1/2。沉迷程度不清空。 - 进入沉迷状态时,如果学生原沉迷程度在(0,该玩家最大沉迷度/3)中,沉迷程度直接变为其最大沉迷度/3;原沉迷程度在[其最大沉迷度/3,其最大沉迷度x2/3)中,沉迷程度直接变为其最大沉迷度x2/3;原沉迷程度大于其最大沉迷度x2/3,从游戏中出局; - 当学生沉迷程度达到其最大沉迷程度时,从游戏中出局 #### 门 - 门分别属于三个教学区:三教,五教,六教 - 拥有对应教学区的钥匙才能开锁对应的门 - 锁门过程中,门所在格子内有人会使锁门过程中断 #### 窗 - 翻窗时玩家应当在窗前后一个格子内 #### 箱子 - 开箱后将有2个随机道具掉落在玩家位置。 ### 信息相关 - Bgm (在structures.h/.py中的student类或Tricker类中作为其属性) 1. 不详的感觉(dangerAlert):如果捣蛋鬼进入(学生的警戒半径/捣蛋鬼的隐蔽度)的距离,则学生的dangerAlert=(int)(警戒半径/二者距离) 2. 期待搞事的感觉(trickDesire):如果有学生进入(捣蛋鬼的警戒半径/学生的隐蔽度)的距离,则捣蛋鬼trickDesire=(int)(警戒半径/可被发觉的最近的学生距离) 3. 学习的声音(classVolume): 警戒半径内有人学习时,捣蛋鬼classVolume=(int)((警戒半径x学习进度百分比)/二者距离) - 可以向每一个队友发送不超过256字节的信息 ### 可视范围 - 小于视野半径,且受限于墙和草地 - 对于在从草地中的物体,物体与玩家连线上均为草地方可见 ### 道具 - 玩家同时最多拥有三个道具 - 可以捡起与自己处于同一个格子(cell)的道具 - 可将道具扔在玩家位置 | 道具 | 对学生增益 | 学生得分条件 | 对搞蛋鬼增益 | 搞蛋鬼得分条件 | | :-------- | :-------------------------------------- | :-----------------| :-------------------------------------- |:-----------------| | Key3 | 能开启3教的门 |不得分| 能开启3教的门 |不得分| | Key5 | 能开启5教的门 |不得分| 能开启5教的门 |不得分| | Key6 | 能开启6教的门 |不得分| 能开启6教的门 |不得分| | AddSpeed | 2倍速,持续10s | 得分10| 2倍速,持续10s |得分10| | AddLifeOrClairaudience |若在10s内Hp归零,该增益消失以使Hp保留100|在10s内Hp归零,得分100 |10秒内得知全场玩家信息|得分10 | | AddHpOrAp |回血750000 | 回血成功,得分10 | 10秒内下一次攻击增伤1800000|不得分 | | ShieldOrSpear | 10秒内能抵挡一次伤害 | 10秒内成功抵挡一次伤害,得分50 |10秒内下一次攻击能破盾,如果对方无盾,则增伤900000| 10秒内破盾,得分50 | | RecoveryFromDizziness | 使用瞬间从眩晕状态中恢复 | 成功从眩晕状态中恢复,得分30|使用瞬间从眩晕状态中恢复 | 成功从眩晕状态中恢复,得分30| ## 得分 ### 捣蛋鬼 - 对学生造成伤害时,得伤害*100/基本伤害(1500000)分。 - 对作业造成破坏时,每破坏n%的作业,得n分 - 使学生沉迷时,得50分。 - 使学生眩晕时,得20*眩晕时长(/s)分。 - 每淘汰一个学生,得1000分 ### 学生 - 学生每完成n%的作业,得2n分 - 学生与捣蛋鬼处于小于5000的距离认为在牵制状态,得(牵制时长(ms)*0.00246)分 - 使捣蛋鬼进入眩晕状态时,得20*眩晕时长(/s)分。 - 成功唤醒一名同学,得100分 - 成功勉励一名同学,得50*勉励程度/基本勉励程度(1500000)分 - 毕业,得1000分 ## 职业与技能 ### 捣蛋鬼 | 捣蛋鬼职业 | Assassin | Klee | 喧哗者ANoisyPerson | Idol | | :------------ | :--------------------- | :--------------------- | :--------------------- | :--------------------- | | 移动速度/s | 3960 | 3600 | 3852 | 3600 | | 隐蔽度 | 1.5 | 1 | 0.8 | 0.75| | 警戒范围 | 22,100 | 17000 | 15300 | 17000 | 视野范围 | 15600 | 13000 | 13000 | 14300| | 开锁门速度 | 4000 | 4000 | 4000 |4000 | | 翻窗速度 | 2540 | 2540 | 2794 | 2540| | 翻箱速度 | 1000 | 1100 | 1000 |1000| #### Assassin - 普通攻击为 CommonAttackOfGhost - 主动技能 - 隐身 BecomeInvisible - CD:40s 持续时间:10s - 在持续时间内玩家隐身 - 使用瞬间得分15 - 使用飞刀 - CD:30s 持续时间:1s - 在持续时间内,攻击类型变为飞刀 - 不直接得分 #### Klee - 普通攻击为 CommonAttackOfGhost - 主动技能 - 蹦蹦炸弹 JumpyBomb - CD:15s 持续时间:3s - 在持续时间内,攻击类型变为蹦蹦炸弹 - 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,270° 发出2个小炸弹 - 2个小炸弹运动停止前会因为碰撞爆炸,停止运动后学生碰撞会造成眩晕3.07s - 不直接得分,通过眩晕等获得对应得分 #### 喧哗者ANoisyPerson - 普通攻击为 CommonAttackOfGhost - 主动技能 - 嚎叫 Howl - CD:25s - 使用瞬间,在视野半径范围内(不是可视区域)的学生被眩晕5500ms,自己进入800ms的后摇 - 通过眩晕获得对应得分 - 特性 - 在场所有学生Bgm系统被设为无用的值 #### Idol - 普通攻击为 CommonAttackOfGhost - 主动技能 - ShowTime - CD: 80s 持续时间:10s - 持续时间内 - 使警戒范围外的学生眩晕并每200ms发送向自己移动200ms的指令(速度为学生本应速度*二者距离/警戒范围) - 对于视野范围(不是可视区域)内的学生每200ms加600的沉迷度 - 捣蛋鬼变为0.8倍速 ### 学生(&老师) | 学生职业 | 教师Teacher | 健身狂Athlete | 学霸StraightAStudent | 开心果Sunshine | | :------------ | :--------------------- | :--------------------- | :--------------------- | :--------------------- | | 移动速度 | 2700 | 3150 | 2880 | 3000 | | 最大毅力值 | 30000000 | 3000000 | 3300000 | 3200000 | | 最大沉迷度 | 600000 | 54,000 | 78,000 | 66,000 | | 学习一科速度 | 0 | 73 | 135 | 123 | | 勉励速度 | 80 | 90 | 100 | 120 | | 隐蔽度 | 0.5 | 0.9 | 0.9 | 0.8 | | 警戒范围 | 7500 | 15000 | 13,500 | 15000 | | 视野范围 | 9,000 | 11000 | 9,000 | 10000 | | 开锁门速度 | 4000 | 4000 | 4000 | 2800 | | 翻窗速度 | 1270 | 3048 | 2116 | 2540 | | 翻箱速度 | 1000 | 1000 | 1000 | 900 | #### 运动员 - 主动技能 - 冲撞 CanBeginToCharge - CD:60s 持续时间:3s - 在持续时间内,速度变为三倍,期间撞到捣蛋鬼,会导致捣蛋鬼眩晕7.22s,学生眩晕2.09s - 通过眩晕获得对应得分 #### 教师 - 主动技能 - 惩罚 Punish - CD:30s - 使用瞬间,在可视范围内的翻窗、开锁门、攻击前后摇的捣蛋鬼会被眩晕(3070+300*已受伤害/基本伤害(1500000))ms, - 通过眩晕获得对应得分 - 特性 - 无法获得牵制得分 - 无法毕业 #### 学霸 - 特性 - 冥想 - 当处于可接受指令状态且不在学习时,会积累“冥想进度”,速度为40/ms - 受到攻击(并非伤害)、进入学习状态或进入不可接受指令状态(包括翻窗)冥想进度清零 - 主动技能5 - 写答案 WriteAnswers - CD:30s - 使用瞬间,对于可交互范围内的一间教室的作业增加冥想进度,冥想进度清零 - 通过学习获得对应得分 #### 开心果 - 主动技能 - 唤醒 Rouse - CD:120s - 使用瞬间,唤醒可视范围内一个沉迷中的人 - 通过唤醒获得对应得分 - 勉励 Encourage - CD:120s - 使用瞬间,为可视范围内随机一个毅力不足的人试图补充750000的毅力值 - 获得勉励750000的毅力值对应得分 - 鼓舞 Inspire - CD:120s - 使用瞬间,可视范围内学生(包括自己)获得持续6秒的1.6倍速Buff - 每鼓舞一个学生得分10 ## 细则 ### 特殊说明 - 不加说明,这里“学生”往往包括职业“教师” ### 移动 - 不鼓励选手面向地图编程,因为移动过程中你可以受到多种干扰使得移动结果不符合你的预期;因此建议小步移动,边移动边考虑之后的行为。 ### 人物 - EndAllAction()及Move指令调用数总和一帧内不超过10次 - 眩晕状态中的玩家不能再次被眩晕 ### 初始状态 - 玩家出生点固定且一定为空地 ### 道具 - 使用钥匙相当于销毁 ### 交互 - 在指令仍在进行时,重复发出同一类型的交互指令是无效的,你需要先发出Stop指令终止进行的指令 - 实际上唤醒或勉励不同的人是有效的 - 被唤醒或被勉励不属于交互状态,翻窗属于交互状态 ### 学习与毕业 - 一个校门同时最多可以由一人开启 - 隐藏校门与校门对于人有碰撞体积 ### 攻击 - 无论近战远程均产生bullet表示攻击 - 前摇期间攻击被打断时,子弹消失。 - 每次学生受到攻击后会损失对应子弹的攻击力的学习毅力 - 此处,前摇指 从播放攻击动作开始 攻击者不能交互 的时间 ### 沉迷与唤醒 - 不能两人同时唤醒一个人 - 在被救时沉迷度不增加 ### 门 - 每个教学区都有2把钥匙 - 一扇门只允许同时一个人开锁门 - 开锁门未完成前,门状态表现为原来的状态 - 开锁门进度中断后清空 ### 窗 - 翻越窗户是一种交互行为,翻窗一共有两个过程 - 跳上窗:从当前位置到窗边缘中点,位置瞬移,时间=距离/爬窗速度。中断时,停留在原位置 - 爬窗:从窗一侧边缘中点到另一侧格子中心,位置渐移,时间=距离/爬窗速度。中断时,停留在另一侧格子中心 - 攻击可以穿过窗,道具可以在窗上 - 有人正在翻越窗户时,其他玩家均不可以翻越该窗户。 - 通常情况下捣蛋鬼翻越窗户的速度高于学生。 ### 箱子 - 地图上有8个箱子 - 同一时刻只允许一人进行开启 - 未开启完成的箱子在下一次需要重新开始开启。 - 箱子开启后其中道具才可以被观测和拿取 - 箱子道具不刷新 ### 得分 - 眩晕或毅力值归零时无牵制得分 ### 信息相关 - Bgm在没有符合条件的情况下,值为0。 ### 技能 - CD冷却计时是在开始使用技能的瞬间开始的 - Klee的小炸弹有碰撞体积 ### 职业 - 学生职业可以重复选择