Browse Source

docs: 📝 edit 游戏机制与平衡性调整更新(基本不变版).md

tags/v0.1.0
shangfengh 2 years ago
parent
commit
a77c0e2360
5 changed files with 17 additions and 15 deletions
  1. +3
    -3
      docs/游戏机制与平衡性调整更新(基本不变版).md
  2. +6
    -1
      docs/版本更新说明.md
  3. +2
    -1
      logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs
  4. +0
    -1
      logic/GameClass/GameObj/Character/Character.cs
  5. +6
    -9
      logic/Gaming/AttackManager.cs

+ 3
- 3
docs/游戏机制与平衡性调整更新(基本不变版).md View File

@@ -20,7 +20,7 @@
- 增强为“可以攻击未写完的作业” - 增强为“可以攻击未写完的作业”
- 增强为“可以攻击使门被打开(可以重新被锁上)” - 增强为“可以攻击使门被打开(可以重新被锁上)”
- 小炸弹JumpyDumpty - 小炸弹JumpyDumpty
- 攻击距离改为1600
- 攻击距离改为1800
- 小炸弹不受道具增益影响 - 小炸弹不受道具增益影响
- 修改为“小炸弹与自己无碰撞体积” - 修改为“小炸弹与自己无碰撞体积”
- strike(新增) - strike(新增)
@@ -30,7 +30,7 @@
| 攻击(子弹)类型 |搞蛋鬼的一般攻击CommonAttackOfTricker|飞刀FlyingKnife | 蹦蹦炸弹BombBomb | 小炸弹JumpyDumpty | strike | | 攻击(子弹)类型 |搞蛋鬼的一般攻击CommonAttackOfTricker|飞刀FlyingKnife | 蹦蹦炸弹BombBomb | 小炸弹JumpyDumpty | strike |
| :--------------------- | :---------------------| :--------------------- | :--------------------- | :--------------------- | :--------------------- | | :--------------------- | :---------------------| :--------------------- | :--------------------- | :--------------------- | :--------------------- |
| 子弹爆炸范围 | 0 | 0 | 2000 | 1000 | 0 | | 子弹爆炸范围 | 0 | 0 | 2000 | 1000 | 0 |
| 子弹攻击距离 | 2200 | 78000 | 2200 | 1600 | 2000 |
| 子弹攻击距离 | 2200 | 78000 | 2200 | 1800 | 2000 |
| 攻击力 | 1500000 | 1200000 | 1800000 | 900000 | 1600000 | | 攻击力 | 1500000 | 1200000 | 1800000 | 900000 | 1600000 |
| 移动速度/s | 7400 | 18500 | 6000 | 8600 | 6250 | | 移动速度/s | 7400 | 18500 | 6000 | 8600 | 6250 |
| 前摇(ms) | 297 | 600 | 366 | - | 320 | | 前摇(ms) | 297 | 600 | 366 | - | 320 |
@@ -109,7 +109,7 @@
- CD:45s, 持续时间:10s - CD:45s, 持续时间:10s
- 技能使用瞬间,对于输入的额外参数PlayerID代表的角色,距离最近的本已停止运动的小炸弹开始追踪该角色(每100ms向该角色直线移动)(该角色无血量则失败) - 技能使用瞬间,对于输入的额外参数PlayerID代表的角色,距离最近的本已停止运动的小炸弹开始追踪该角色(每100ms向该角色直线移动)(该角色无血量则失败)
- 主动技能 蹦蹦炸弹 JumpyBomb - 主动技能 蹦蹦炸弹 JumpyBomb
- 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上0°,45°,90°,135°,180°,225°,270°,315° 发出8个小炸弹
- 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,120°,150°,180°,210°,240°,270° 发出7个小炸弹
- Idol - Idol
主动技能ShowTime改为 主动技能ShowTime改为
"持续时间内 "持续时间内


+ 6
- 1
docs/版本更新说明.md View File

@@ -59,5 +59,10 @@
# 5月20日23:30更新 # 5月20日23:30更新
- fix:修复了学习已经完成的作业会卡死的问题 - fix:修复了学习已经完成的作业会卡死的问题


# 5月21日0:30更新
- fix:修复了游戏结束判定的bug
- fix:修复了死亡状态设置的bug

# 5月21日更新 # 5月21日更新
- fix:修复了游戏结束判定的bug
- docs:更新了 游戏机制与平衡性调整更新(基本不变版).pdf
- Klee小炸弹的攻击范围与放射方向调整

+ 2
- 1
logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs View File

@@ -158,6 +158,7 @@ namespace GameClass.GameObj
public override BulletType TypeOfBullet => BulletType.BombBomb; public override BulletType TypeOfBullet => BulletType.BombBomb;


} }

internal sealed class JumpyDumpty : Bullet internal sealed class JumpyDumpty : Bullet
{ {
public JumpyDumpty(Character player, XY pos, int radius = GameData.bulletRadius) : base(player, radius, pos) public JumpyDumpty(Character player, XY pos, int radius = GameData.bulletRadius) : base(player, radius, pos)
@@ -165,7 +166,7 @@ namespace GameClass.GameObj
ap = (int)(GameData.basicApOfGhost * 0.6); ap = (int)(GameData.basicApOfGhost * 0.6);
} }
public override double BulletBombRange => GameData.basicBulletBombRange / 2; public override double BulletBombRange => GameData.basicBulletBombRange / 2;
public override double AttackDistance => GameData.basicAttackShortRange * 16 / 22;
public override double AttackDistance => GameData.basicAttackShortRange * 18 / 22;


public override int Speed => (int)(GameData.basicBulletMoveSpeed * 43 / 37); public override int Speed => (int)(GameData.basicBulletMoveSpeed * 43 / 37);
public override bool IsRemoteAttack => false; public override bool IsRemoteAttack => false;


+ 0
- 1
logic/GameClass/GameObj/Character/Character.cs View File

@@ -595,7 +595,6 @@ namespace GameClass.GameObj
lock (actionLock) lock (actionLock)
{ {
if (!TryToRemove()) return false; if (!TryToRemove()) return false;
Debugger.Output(this, "TryToRemove");
ReSetCanMove(false); ReSetCanMove(false);
SetPlayerState(playerStateType); SetPlayerState(playerStateType);
position = GameData.PosWhoDie; position = GameData.PosWhoDie;


+ 6
- 9
logic/Gaming/AttackManager.cs View File

@@ -52,9 +52,8 @@ namespace Gaming


private void BombObj(Bullet bullet, GameObj objBeingShot) private void BombObj(Bullet bullet, GameObj objBeingShot)
{ {
#if DEBUG
Debugger.Output(bullet, "bombed " + objBeingShot.ToString()); Debugger.Output(bullet, "bombed " + objBeingShot.ToString());
#endif
switch (objBeingShot.Type) switch (objBeingShot.Type)
{ {
case GameObjType.Character: case GameObjType.Character:
@@ -122,12 +121,11 @@ namespace Gaming


private void BulletBomb(Bullet bullet, GameObj? objBeingShot) private void BulletBomb(Bullet bullet, GameObj? objBeingShot)
{ {
#if DEBUG
if (objBeingShot != null) if (objBeingShot != null)
Debugger.Output(bullet, "bombed with" + objBeingShot.ToString()); Debugger.Output(bullet, "bombed with" + objBeingShot.ToString());
else else
Debugger.Output(bullet, "bombed without objBeingShot"); Debugger.Output(bullet, "bombed without objBeingShot");
#endif
if (!TryRemoveBullet(bullet)) return; if (!TryRemoveBullet(bullet)) return;


if (bullet.BulletBombRange == 0) if (bullet.BulletBombRange == 0)
@@ -155,14 +153,13 @@ namespace Gaming


if (bullet.TypeOfBullet == BulletType.BombBomb && objBeingShot != null) if (bullet.TypeOfBullet == BulletType.BombBomb && objBeingShot != null)
{ {
ProduceBombBomb(bullet, 0);
ProduceBombBomb(bullet, Math.PI / 4);
ProduceBombBomb(bullet, Math.PI / 2); ProduceBombBomb(bullet, Math.PI / 2);
ProduceBombBomb(bullet, Math.PI * 3 / 4);
ProduceBombBomb(bullet, Math.PI * 2 / 3);
ProduceBombBomb(bullet, Math.PI * 5 / 6);
ProduceBombBomb(bullet, Math.PI); ProduceBombBomb(bullet, Math.PI);
ProduceBombBomb(bullet, Math.PI * 5 / 4);
ProduceBombBomb(bullet, Math.PI * 7 / 6);
ProduceBombBomb(bullet, Math.PI * 4 / 3);
ProduceBombBomb(bullet, Math.PI * 3 / 2); ProduceBombBomb(bullet, Math.PI * 3 / 2);
ProduceBombBomb(bullet, Math.PI * 7 / 4);
} }


var beAttackedList = new List<IGameObj>(); var beAttackedList = new List<IGameObj>();


Loading…
Cancel
Save