| @@ -1,5 +1,5 @@ | |||
| # 规则 | |||
| V5.6 | |||
| V5.6.2 | |||
| - [规则](#规则) | |||
| - [简则](#简则) | |||
| - [地图](#地图) | |||
| @@ -217,7 +217,7 @@ $$ | |||
| - CD:15s 持续时间:3s | |||
| - 在持续时间内,攻击类型变为蹦蹦炸弹 | |||
| - 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,270° 发出2个小炸弹 | |||
| - 2个小炸弹运动停止前会因为碰撞爆炸,停止运动后学生碰撞会造成眩晕3.07s | |||
| - 小炸弹运动停止前会因为碰撞爆炸,停止运动后学生碰撞会造成眩晕3.07s | |||
| - 不直接得分,通过眩晕等获得对应得分 | |||
| #### 喧哗者ANoisyPerson | |||
| @@ -1,5 +1,5 @@ | |||
| # 游戏机制与平衡性调整更新草案 | |||
| v1.3 | |||
| v1.4 | |||
| ## 说明 | |||
| - 该草案尚未完全确定,请大家不要过分依靠该文档进行修改自己的代码 | |||
| @@ -14,13 +14,14 @@ v1.3 | |||
| ## 攻击 | |||
| - 飞刀FlyingKnife | |||
| - 前摇变为600ms | |||
| - 前摇与CD变为600ms | |||
| - 搞蛋鬼的一般攻击CommonAttackOfTricker | |||
| - 改为“不能攻击未写完的作业” | |||
| - 蹦蹦炸弹BombBomb | |||
| - 未攻击至目标时的后摇改为1200ms | |||
| - 增强为“可以攻击未写完的作业” | |||
| - 增强为“可以攻击使门被打开(可以重新被锁上)” | |||
| - 改为“当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,180° ,270° 发出3个小炸弹” | |||
| - strike(新增) | |||
| - 可以攻击未写完的作业 | |||
| @@ -34,7 +35,7 @@ v1.3 | |||
| | 前摇(ms) | 297 | 600 | 366 | - | 320 | | |||
| |未攻击至目标时的后摇(ms)| 800 | 0 | 1200 | - | 800 | | |||
| |攻击至目标时的后摇(ms) | 3700 | 0 | 3700 | - | 3700 | | |||
| | CD(ms) | 800 | 400 | 3000 | - | 800 | | |||
| | CD(ms) | 800 | 600 | 3000 | - | 800 | | |||
| | 最大子弹容量 | 1 | 1 | 1 | - | 1 | | |||
| @@ -46,12 +47,18 @@ v1.3 | |||
| - 先前学生翻窗数据有误 | |||
| - Teacher | |||
| - 警戒范围由7500改为13000 | |||
| - 学习速度由0改为50 | |||
| - 警戒范围由7500改为10000 | |||
| - 视野范围由9000降为8000 | |||
| - 翻窗速度改为1000 | |||
| - 技能惩罚(Punish)强化为“使用瞬间,在**视野距离范围内(不是可视范围)的**翻窗、开锁门、攻击前后摇、**使用技能期间**的捣蛋鬼会被眩晕(3070+**500***已受伤害/基本伤害(1500000))ms” | |||
| - 特质: | |||
| - 扣血则得分**50**×受到伤害/基本伤害(1500000) | |||
| - 技能惩罚(Punish)改为 | |||
| - CD:45s | |||
| - “使用瞬间,在**视野距离/4范围内(不是可视范围)的**翻窗、开锁门、攻击前后摇、**使用技能期间**的捣蛋鬼会被眩晕(3070+**500***已受伤害/基本伤害(1500000))ms” | |||
| - 技能喝茶(HaveTea)(新增) | |||
| - CD:90s | |||
| - 使用瞬间,向当前方向瞬移3000(可以穿墙),如果会碰撞则失败。 | |||
| - 在有队友受过伤的情况下,使用瞬间,向当前方向瞬移3000(可以穿墙),如果会碰撞则失败。 | |||
| - Robot(新增) | |||
| - 无技能 | |||
| - 特性 | |||
| @@ -79,11 +86,11 @@ v1.3 | |||
| | 移动速度/s | 2700 | 3150 | 2880 | 3000 | 2700 | 2880 | | |||
| | 最大毅力值 | 30000000 | 3000000 | 3300000 | 3200000 | 900000 | 2700000 | | |||
| | 最大沉迷度 | 600000 | 54000 | 78000 | 60000 | 0 | 60000 | | |||
| | 学习速度/ms | 0 | 73 | 135 | 123 | 100 | 130 | | |||
| | 学习速度/ms | 50 | 73 | 135 | 123 | 100 | 130 | | |||
| | 勉励速度/ms | 80 | 90 | 100 | 120 | 0 | 100 | | |||
| | 隐蔽度 | 0.5 | 0.9 | 0.9 | 0.8 | 0.8 | 1.1 | | |||
| | 警戒范围 | 13000 | 15000 | 13500 | 15000 | 0 | 15000 | | |||
| | 视野范围 | 9000 | 11000 | 9000 | 10000 | 0 | 9000 | | |||
| | 警戒范围 | 10000 | 15000 | 13500 | 15000 | 0 | 15000 | | |||
| | 视野范围 | 8000 | 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 | | |||
| @@ -2,15 +2,14 @@ | |||
| using Preparation.Utility; | |||
| using System; | |||
| using System.Collections.Generic; | |||
| using System.Threading; | |||
| namespace GameClass.GameObj | |||
| { | |||
| public partial class Character : Moveable, ICharacter // 负责人LHR摆烂终了 | |||
| { | |||
| #region 装弹、攻击相关的基本属性及方法 | |||
| private readonly object attackLock = new(); | |||
| public object AttackLock => attackLock; | |||
| /// <summary> | |||
| /// 装弹冷却 | |||
| @@ -87,14 +86,16 @@ namespace GameClass.GameObj | |||
| { | |||
| lock (attackLock) | |||
| { | |||
| if (bulletOfPlayer == BulletType.Null) | |||
| return null; | |||
| if (UpdateBulletNum(time) > 0) | |||
| { | |||
| if(bulletNum==maxBulletNum)updateTimeOfBulletNum = time; | |||
| if (bulletNum == maxBulletNum) updateTimeOfBulletNum = time; | |||
| --bulletNum; | |||
| XY res = Position + new XY // 子弹紧贴人物生成。 | |||
| ( | |||
| (int)(Math.Abs((Radius + BulletFactory.BulletRadius(BulletOfPlayer)) * Math.Cos(angle))) * ((Math.Cos(angle) > 0) ? 1 : -1), | |||
| (int)(Math.Abs((Radius + BulletFactory.BulletRadius(BulletOfPlayer)) * Math.Sin(angle))) * ((Math.Sin(angle) > 0) ? 1 : -1) | |||
| (int)(Math.Abs((Radius + BulletFactory.BulletRadius(bulletOfPlayer)) * Math.Cos(angle))) * ((Math.Cos(angle) > 0) ? 1 : -1), | |||
| (int)(Math.Abs((Radius + BulletFactory.BulletRadius(bulletOfPlayer)) * Math.Sin(angle))) * ((Math.Sin(angle) > 0) ? 1 : -1) | |||
| ); | |||
| Bullet? bullet = BulletFactory.GetBullet(this, res); | |||
| if (bullet == null) return null; | |||
| @@ -166,12 +166,6 @@ namespace Gaming | |||
| public bool Attack(Character player, double angle) | |||
| { // 子弹如果没有和其他物体碰撞,将会一直向前直到超出人物的attackRange | |||
| if (player.BulletOfPlayer == BulletType.Null) | |||
| return false; | |||
| Debugger.Output(player, player.CharacterType.ToString() + "Attack in " + player.BulletOfPlayer.ToString()); | |||
| Debugger.Output(player, player.Position.ToString() + " " + player.Radius.ToString() + " " + BulletFactory.BulletRadius(player.BulletOfPlayer).ToString()); | |||
| Bullet? bullet = player.Attack(angle, gameMap.Timer.nowTime()); | |||
| if (bullet != null) | |||