规则
V6.0
简则
- 每场比赛分为上下两个半场,上下半场双方换边
- 单局比赛分为学生阵营(4 人)和捣蛋鬼阵营(1 人)
- 最终将两场比赛己方所得分数相加,高者获胜
地图
- 地图为矩形区域,游戏对象坐标为(x, y),x和y均为整数。
- x坐标轴正方向竖直向下,y坐标轴正方向水平向右;
- 极坐标以x坐标轴为极轴,角度逆时针为正方向。
- 地图由50 * 50个格子构成,每个格子代表1000 * 1000的正方形。每个格子的编号(CellX,CellY)可以计算得到:
$$
CellX=\frac{x}{1000},CellY=\frac{y}{1000}
$$
- 格子有对应区域类型:陆地、墙、草地、教室、校门、隐藏校门、门、窗、箱子
- 任何格子的区域类型(PlaceType)始终不变,所有隐藏校门刷新点的区域类型均为隐藏校门
人物
- (可)移动状态 Idel
- 学习 Learning
- 被勉励 Encouraged
- 在勉励 Encouraging
- 开或锁门 Locking
- 翻箱 Rummaging
- 使用技能 UsingSpecialSkill
- 开启校门 OpeningAGate
- 唤醒他人中 Rousing
- 被唤醒中 Roused
- 沉迷 Addicted
- 退学 Quit
- 毕业 Graduated
- 被眩晕 Stunned
- 前摇 Attacking
- 后摇 Swinging
- 翻窗 Climbing
攻击
- 攻击距离是指攻击(子弹)的移动距离,也就是说理论上最远被攻击的学生的中心与捣蛋鬼的中心=学生的半径+捣蛋鬼的半径+攻击距离+子弹半径(200)*2
- 蹦蹦炸弹BombBomb与strike攻击未写完的作业,会造成对应攻击力的损坏
- 捣蛋鬼攻击交互状态或前后摇的学生,将使学生眩晕4.3s
- 蹦蹦炸弹BombBomb可以攻击使门被打开
| 攻击(子弹)类型 |
搞蛋鬼的一般攻击CommonAttackOfTricker |
飞刀FlyingKnife |
蹦蹦炸弹BombBomb |
小炸弹JumpyDumpty |
strike |
| 子弹爆炸范围 |
0 |
0 |
2000 |
1000 |
0 |
| 子弹攻击距离 |
2200 |
78000 |
2200 |
1800 |
2000 |
| 攻击力 |
1500000 |
1200000 |
1800000 |
900000 |
1600000 |
| 移动速度/s |
7400 |
18500 |
6000 |
8600 |
6250 |
| 前摇(ms) |
297 |
600 |
366 |
- |
320 |
| 未攻击至目标时的后摇(ms) |
800 |
0 |
1200 |
- |
800 |
| 攻击至目标时的后摇(ms) |
3700 |
0 |
3700 |
- |
3700 |
| CD(ms) |
800 |
600 |
3000 |
- |
800 |
| 最大子弹容量 |
1 |
1 |
1 |
- |
1 |
交互
- 除了翻窗,交互目标与交互者在一个九宫格方可交互
- 交互进度每毫秒增加对应交互速度的值
- 作业,门,箱子完成/开启进度达到10000000为完成
- 校门开启进度达到18000为完成
学习与毕业
- 共有10间教室,学生需要完成7间教室的作业,才可以开启校门。
- 开启校门需要18秒,开启进度不清空
- 3间教室的作业完成时,隐藏校门会在刷新点之一随机显现;当只剩1名学生时,隐藏校门自动打开。
- 从开启的校门或隐藏校门毕业是学生终极目标
勉励
- 当被勉励程度达到当前损失的毅力值或1500000时,勉励完成,学生毅力增加对应被勉励程度。
- 勉励中断时,被勉励程度保留;遭到攻击时被勉励程度清空
沉迷与唤醒
- 学习毅力归零时,学生进入沉迷状态,每毫秒增加1沉迷度
- 唤醒需要1秒,之后学习毅力恢复至1/2。沉迷程度不清空。
- 进入沉迷状态时,如果学生原沉迷程度在(0,该玩家最大沉迷度/3)中,沉迷程度直接变为其最大沉迷度/3;原沉迷程度在[其最大沉迷度/3,其最大沉迷度x2/3)中,沉迷程度直接变为其最大沉迷度x2/3;原沉迷程度大于其最大沉迷度x2/3,从游戏中出局;
门
- 门分别属于三个教学区:三教,五教,六教
- 拥有对应教学区的钥匙才能开锁对应的门
窗
箱子
信息相关
- Bgm (在structures.h/.py中的student类或Tricker类中作为其属性)
- 不详的感觉(dangerAlert):如果捣蛋鬼进入(学生的警戒半径/捣蛋鬼的隐蔽度)的距离,则学生的dangerAlert=(警戒半径/二者距离)
- 期待搞事的感觉(trickDesire):如果有学生进入(捣蛋鬼的警戒半径/学生的隐蔽度)的距离,则捣蛋鬼trickDesire=(警戒半径/可被发觉的最近的学生距离)
- 学习的声音(classVolume): 警戒半径内有人学习时,捣蛋鬼classVolume=((警戒半径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 |
| 警戒范围 |
22100 |
17000 |
15300 |
17000 |
| 视野范围 |
15600 |
13000 |
13000 |
14300 |
| 开锁门速度/ms |
5000 |
5000 |
5000 |
5000 |
| 翻窗速度/s |
2540 |
2540 |
2794 |
2540 |
| 翻箱速度/ms |
1250 |
1375 |
1250 |
1250 |
Assassin
- 普通攻击为 CommonAttackOfTricker
- 主动技能
0. 隐身 BecomeInvisible
- CD:40s 持续时间:10s
- 在持续时间内玩家隐身,人物状态进入UsingSpecialSkill,进入其他状态会使得隐身状态解除
- 使用瞬间得分15
- 使用飞刀
- CD:30s 持续时间:1s
- 在持续时间内,攻击类型变为飞刀
- 不直接得分
Klee
- 普通攻击为 CommonAttackOfTricker
- 主动技能
0. 蹦蹦炸弹 JumpyBomb
- CD:15s 持续时间:3s
- 在持续时间内,攻击类型变为蹦蹦炸弹
- 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,120°,150°,180°,210°,240°,270° 发出7个小炸弹
- 小炸弹运动停止前会因为碰撞爆炸,停止运动后学生碰撞会造成眩晕3.07s
- 不直接得分,通过眩晕等获得对应得分
- SparksNSplash:
- CD:45s, 持续时间:10s
- 技能使用瞬间,对于输入的额外参数PlayerID代表的角色,距离最近的本已停止运动的小炸弹开始追踪该角色(每100ms向该角色直线移动)(该角色无血量则失败)
- 特性
喧哗者ANoisyPerson
- 普通攻击为 strike
- 主动技能
0. 嚎叫 Howl
- CD:25s
- 使用瞬间,在视野半径范围内(不是可视区域)的学生被眩晕5500ms,自己进入800ms的后摇
- 通过眩晕获得对应得分
- 特性
Idol
- 普通攻击为 CommonAttackOfTricker
- 主动技能
- ShowTime
- CD: 80s 持续时间:10s
- 持续时间内
- 使警戒范围外的学生眩晕并每500ms发送向自己移动500ms的指令(速度为学生本应速度*二者距离/警戒范围)
- 对于视野范围(不是可视区域)内的学生每500ms加1500的沉迷度
- 捣蛋鬼变为0.8倍速"
学生(&老师)
| 学生职业 |
教师Teacher |
健身狂Athlete |
学霸StraightAStudent |
开心果Sunshine |
机器人Robot |
技术宅TechOtaku |
| 移动速度/s |
2700 |
3150 |
2880 |
3000 |
2700 |
2880 |
| 最大毅力值 |
30000000 |
3000000 |
3300000 |
3200000 |
900000 |
2700000 |
| 最大沉迷度 |
600000 |
54000 |
78000 |
60000 |
0 |
60000 |
| 学习速度/ms |
50 |
73 |
135 |
123 |
85 |
110 |
| 勉励速度/ms |
80 |
90 |
100 |
120 |
0 |
100 |
| 隐蔽度 |
0.5 |
0.9 |
0.9 |
0.8 |
0.8 |
1.1 |
| 警戒范围 |
10000 |
15000 |
13500 |
15000 |
0 |
15000 |
| 视野范围 |
9000 |
11000 |
9000 |
10000 |
0 |
9000 |
| 开锁门速度/ms |
5000 |
5000 |
5000 |
3500 |
0 |
5000 |
| 翻窗速度/ms |
1000 |
1466 |
1018 |
1222 |
1 |
1100 |
| 翻箱速度/ms |
1250 |
1250 |
1250 |
1125 |
1000 |
1100 |
运动员
- 主动技能
0. 冲撞 CanBeginToCharge
- CD:60s 持续时间:3s
- 在持续时间内,速度变为三倍,期间撞到捣蛋鬼,会导致捣蛋鬼眩晕7.22s,学生眩晕2.09s
- 通过眩晕获得对应得分
教师
- 主动技能
0. 惩罚 Punish
- CD:45s
- “使用瞬间,在视野距离/3范围内(不是可视范围)的翻窗、开锁门、攻击前后摇、使用技能期间的捣蛋鬼会被眩晕(3070+$\frac{500×已受伤害}{基本伤害(1500000)×2^{开局老师数量-1}}$)ms”
- 其眩晕得分为正常眩晕得分/2^开局老师数量-1^
- 喝茶 HaveTea
- CD:90s
- 使用瞬间,向额外参数/1000.0的角度瞬移3000(可以穿墙),如果会碰撞则失败。
- 特性
- 无法获得牵制得分
- 无法毕业
- 扣血则得分$\frac{100×受到伤害}{基本伤害(1500000)×2^{开局老师数量-1}}$
学霸
- 特性
- 冥想
- 当处于可接受指令状态且不在学习时,会积累“冥想进度”,速度为40/ms
- 受到攻击(并非伤害)、进入学习状态或进入不可接受指令状态(包括翻窗)冥想进度清零
- 主动技能
0. 写答案 WriteAnswers
- CD:30s
- 使用瞬间,对于可交互范围内的一间教室的作业增加冥想进度,冥想进度清零
- 通过学习获得对应得分
机器人Robot
- 特性
- 无技能
- 不可被眩晕
- 不可毕业
- 不可救人
- 无牵制得分
- 不可使用道具(可以捡起和扔道具)
- 不沉迷,击中直接摧毁
技术宅TechOtaku
- 特性
- 一名TechOtaku最多可以在场上同时最多拥有3个Robot,无法共享视野
- 主动技能
0. SummonGolem
- CD:40s,持续时间:6s
- 在持续时间中,学生进入人物状态进入UsingSpecialSkill(不能移动),进入其他状态会导致制作机器人失败。
- 在持续时间中,学生面前生成道具CraftingBench;学生进入其他状态或该道具被碰撞后,CraftingBench消失且制作机器人失败。
- 持续时间结束后,道具CraftingBench所在位置生成一个Robot,CraftingBench消失
- TechOtaku的Robot的PlayerId = TechOtaku的PlayerId + n×5(一局游戏理论人数),其中1<=n<=3(自己的n为0)
- 新造的Robot的PlayerId的n总是尽量小
- UseRobot
- CD:2s,持续时间:0s
- 输入额外参数PlayerID,切换到要使用的角色。
- 切换到其他角色时,自己进入UsingSkill状态。
开心果
- 主动技能
0. 唤醒 Rouse
- CD:120s
- 使用瞬间,唤醒可视范围内一个沉迷中的人
- 通过唤醒获得对应得分
- 勉励 Encourage
- CD:120s
- 使用瞬间,为可视范围内随机一个毅力不足的人试图补充750000的毅力值
- 获得勉励750000的毅力值对应得分
- 鼓舞 Inspire
- CD:120s
- 使用瞬间,可视范围内学生(包括自己)获得持续6秒的1.6倍速Buff
- 每鼓舞一个学生得分10
细则
特殊说明
移动
- 不鼓励选手面向地图编程,因为移动过程中你可以受到多种干扰使得移动结果不符合你的预期;因此建议小步移动,边移动边考虑之后的行为。
人物
- 眩晕状态中的玩家不能再次被眩晕(除非是ShowTime)
初始状态
道具
- 使用钥匙相当于销毁
- 可接受指令状态下能捡起或扔道具,在场上即可使用道具
交互
学习与毕业
- 一个校门同时最多可以由一人开启
- 校门对于人有碰撞体积
- 隐藏校门显现后对于人有碰撞体积
攻击
- 无论近战远程均产生bullet表示攻击
- 前摇期间攻击被打断时,子弹消失。
- 每次学生受到攻击后会损失对应子弹的攻击力的学习毅力
- 此处,前摇指 从播放攻击动作开始 攻击者不能交互 的时间
沉迷与唤醒
门
- 每个教学区都有2把钥匙
- 一扇门只允许同时一个人开锁门
- 开锁门进度中断后清空
窗
- 由于窗户被占用导致翻窗失败会使先前行动停止
- 翻越窗户是一种交互行为,翻窗一共有两个过程
- 跳上窗:从当前位置到窗边缘中点,位置瞬移,时间=距离/爬窗速度。中断时,停留在原位置
- 爬窗:从窗一侧边缘中点到另一侧格子中心,位置渐移,时间=距离/爬窗速度。中断时,停留在另一侧格子中心
- 攻击可以穿过窗,道具可以在窗上
- 有人正在翻越窗户时,其他玩家均不可以翻越该窗户。
箱子
- 地图上有8个箱子
- 未开启完成的箱子在下一次需要重新开始开启。
- 箱子道具不刷新
得分
信息相关
技能
- CD冷却计时是在开始使用技能的瞬间开始的
- Klee的小炸弹不受道具增益影响
- 除了切换攻击类型的技能,在不能执行指令的状态下(包括翻窗)均不能使用技能
职业