规则
V5.5
简则
- 每场比赛分为上下两个半场,上下半场双方换边
- 单局比赛分为学生阵营(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
攻击
- 攻击类型CommonAttackOfTricker攻击未写完的作业,会造成对应攻击力的损坏
- 捣蛋鬼攻击交互状态或前后摇的学生,将使学生眩晕4.3s
| 攻击(子弹)类型 |
搞蛋鬼的一般攻击CommonAttackOfTricker |
飞刀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为完成
- 校门开启进度达到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 |
| 警戒范围 |
22,100 |
17000 |
15300 |
17000 |
| 视野范围 |
15600 |
13000 |
13000 |
14300 |
| 开锁门速度/ms |
4000 |
4000 |
4000 |
4000 |
| 翻窗速度/s |
2540 |
2540 |
2794 |
2540 |
| 翻箱速度/ms |
1000 |
1100 |
1000 |
1000 |
Assassin
- 普通攻击为 CommonAttackOfTricker
- 主动技能
0. 隐身 BecomeInvisible
- CD:40s 持续时间:10s
- 在持续时间内玩家隐身
- 使用瞬间得分15
- 使用飞刀
- CD:30s 持续时间:1s
- 在持续时间内,攻击类型变为飞刀
- 不直接得分
Klee
- 普通攻击为 CommonAttackOfTricker
- 主动技能
0. 蹦蹦炸弹 JumpyBomb
- CD:15s 持续时间:3s
- 在持续时间内,攻击类型变为蹦蹦炸弹
- 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,270° 发出2个小炸弹
- 2个小炸弹运动停止前会因为碰撞爆炸,停止运动后学生碰撞会造成眩晕3.07s
- 不直接得分,通过眩晕等获得对应得分
喧哗者ANoisyPerson
- 普通攻击为 CommonAttackOfTricker
- 主动技能
0. 嚎叫 Howl
- CD:25s
- 使用瞬间,在视野半径范围内(不是可视区域)的学生被眩晕5500ms,自己进入800ms的后摇
- 通过眩晕获得对应得分
- 特性
Idol
- 普通攻击为 CommonAttackOfTricker
- 主动技能
- ShowTime
- CD: 80s 持续时间:10s
- 持续时间内
- 使警戒范围外的学生眩晕并每200ms发送向自己移动200ms的指令(速度为学生本应速度*二者距离/警戒范围)
- 对于视野范围(不是可视区域)内的学生每200ms加600的沉迷度
- 捣蛋鬼变为0.8倍速
学生(&老师)
| 学生职业 |
教师Teacher |
健身狂Athlete |
学霸StraightAStudent |
开心果Sunshine |
| 移动速度/s |
2700 |
3150 |
2880 |
3000 |
| 最大毅力值 |
30000000 |
3000000 |
3300000 |
3200000 |
| 最大沉迷度 |
600000 |
54,000 |
78,000 |
66,000 |
| 学习一科速度 |
0 |
73 |
135 |
123 |
| 勉励速度/ms |
80 |
90 |
100 |
120 |
| 隐蔽度 |
0.5 |
0.9 |
0.9 |
0.8 |
| 警戒范围 |
7500 |
15000 |
13,500 |
15000 |
| 视野范围 |
9,000 |
11000 |
9,000 |
10000 |
| 开锁门速度/ms |
4000 |
4000 |
4000 |
2800 |
| 翻窗速度/ms |
1270 |
3048 |
2116 |
2540 |
| 翻箱速度/ms |
1000 |
1000 |
1000 |
900 |
运动员
- 主动技能
0. 冲撞 CanBeginToCharge
- CD:60s 持续时间:3s
- 在持续时间内,速度变为三倍,期间撞到捣蛋鬼,会导致捣蛋鬼眩晕7.22s,学生眩晕2.09s
- 通过眩晕获得对应得分
教师
- 主动技能
0. 惩罚 Punish
- CD:30s
- 使用瞬间,在可视范围内的翻窗、开锁门、攻击前后摇的捣蛋鬼会被眩晕(3070+300*已受伤害/基本伤害(1500000))ms,
- 通过眩晕获得对应得分
- 特性
学霸
- 特性
- 冥想
- 当处于可接受指令状态且不在学习时,会积累“冥想进度”,速度为40/ms
- 受到攻击(并非伤害)、进入学习状态或进入不可接受指令状态(包括翻窗)冥想进度清零
- 主动技能5
0. 写答案 WriteAnswers
- CD:30s
- 使用瞬间,对于可交互范围内的一间教室的作业增加冥想进度,冥想进度清零
- 通过学习获得对应得分
开心果
- 主动技能
0. 唤醒 Rouse
- CD:120s
- 使用瞬间,唤醒可视范围内一个沉迷中的人
- 通过唤醒获得对应得分
- 勉励 Encourage
- CD:120s
- 使用瞬间,为可视范围内随机一个毅力不足的人试图补充750000的毅力值
- 获得勉励750000的毅力值对应得分
- 鼓舞 Inspire
- CD:120s
- 使用瞬间,可视范围内学生(包括自己)获得持续6秒的1.6倍速Buff
- 每鼓舞一个学生得分10
细则
特殊说明
移动
- 不鼓励选手面向地图编程,因为移动过程中你可以受到多种干扰使得移动结果不符合你的预期;因此建议小步移动,边移动边考虑之后的行为。
人物
初始状态
道具
交互
学习与毕业
- 一个校门同时最多可以由一人开启
- 校门对于人有碰撞体积
- 隐藏校门显现后对于人有碰撞体积
攻击
- 无论近战远程均产生bullet表示攻击
- 前摇期间攻击被打断时,子弹消失。
- 每次学生受到攻击后会损失对应子弹的攻击力的学习毅力
- 此处,前摇指 从播放攻击动作开始 攻击者不能交互 的时间
沉迷与唤醒
门
- 每个教学区都有2把钥匙
- 一扇门只允许同时一个人开锁门
- 开锁门进度中断后清空
窗
- 翻越窗户是一种交互行为,翻窗一共有两个过程
- 跳上窗:从当前位置到窗边缘中点,位置瞬移,时间=距离/爬窗速度。中断时,停留在原位置
- 爬窗:从窗一侧边缘中点到另一侧格子中心,位置渐移,时间=距离/爬窗速度。中断时,停留在另一侧格子中心
- 攻击可以穿过窗,道具可以在窗上
- 有人正在翻越窗户时,其他玩家均不可以翻越该窗户。
箱子
- 地图上有8个箱子
- 未开启完成的箱子在下一次需要重新开始开启。
- 箱子道具不刷新
得分
信息相关
技能
- CD冷却计时是在开始使用技能的瞬间开始的
- Klee的小炸弹有碰撞体积
- 除了切换攻击类型的技能,在不能执行指令的状态下(包括翻窗)均不能使用技能
职业