diff --git a/dependency/proto/MessageType.proto b/dependency/proto/MessageType.proto index 10d6d61..01da3d2 100755 --- a/dependency/proto/MessageType.proto +++ b/dependency/proto/MessageType.proto @@ -49,6 +49,7 @@ enum PropType // 地图中的可拾取道具类型 KEY3 = 5; KEY5 = 6; KEY6 = 7; + RECOVERY_FROM_DIZZINESS = 8; } enum StudentBuffType // 人类可用的增益效果类型 @@ -57,7 +58,7 @@ enum StudentBuffType // 人类可用的增益效果类型 SBUFFTYPE1 = 1;//AddSpeed SBUFFTYPE2 = 2;//AddLIFE SBUFFTYPE3 = 3;//Shield - SBUFFTYPE4 = 4; + SBUFFTYPE4 = 4;//INVISIBLE } enum PlayerState diff --git a/logic/GameClass/GameObj/Prop.cs b/logic/GameClass/GameObj/Prop.cs index 621a453..c8feab7 100644 --- a/logic/GameClass/GameObj/Prop.cs +++ b/logic/GameClass/GameObj/Prop.cs @@ -68,6 +68,14 @@ namespace GameClass.GameObj } public override PropType GetPropType() => PropType.AddHpOrAp; } + public sealed class RecoveryFromDizziness : Prop + { + public RecoveryFromDizziness(XY initPos, PlaceType placeType) : + base(initPos, placeType) + { + } + public override PropType GetPropType() => PropType.RecoveryFromDizziness; + } /// /// 矛盾 /// @@ -147,6 +155,8 @@ namespace GameClass.GameObj return new ShieldOrSpear(pos, place); case PropType.AddHpOrAp: return new AddHpOrAp(pos, place); + case PropType.RecoveryFromDizziness: + return new RecoveryFromDizziness(pos, place); case PropType.Key3: return new Key3(pos, place); case PropType.Key5: diff --git a/logic/Gaming/PropManager.cs b/logic/Gaming/PropManager.cs index 50eb8b5..bb9da19 100644 --- a/logic/Gaming/PropManager.cs +++ b/logic/Gaming/PropManager.cs @@ -34,9 +34,14 @@ namespace Gaming case PropType.AddLifeOrClairaudience: if (!player.IsGhost()) player.AddLIFE(GameData.PropDuration); - else player.AddClairaudience(GameData.PropDuration); + else + { + player.AddScore(GameData.ScorePropClairaudience); + player.AddClairaudience(GameData.PropDuration); + } break; case PropType.AddSpeed: + player.AddScore(GameData.ScorePropAddSpeed); player.AddMoveSpeed(GameData.PropDuration); break; case PropType.AddHpOrAp: @@ -48,6 +53,13 @@ namespace Gaming } else player.AddAp(GameData.PropDuration); break; + case PropType.RecoveryFromDizziness: + if (player.PlayerState == PlayerStateType.Stunned) + { + player.AddScore(GameData.ScorePropRecoverFromDizziness); + player.PlayerState = PlayerStateType.Null; + } + break; default: break; } diff --git a/logic/Preparation/Utility/GameData.cs b/logic/Preparation/Utility/GameData.cs index 50132a7..2c36ed9 100644 --- a/logic/Preparation/Utility/GameData.cs +++ b/logic/Preparation/Utility/GameData.cs @@ -151,7 +151,10 @@ namespace Preparation.Utility public const int ScorePropUseShield = 20; public const int ScorePropUseSpear = 20; public const int ScorePropAddAp = 10; - public const int ScorePropAddHp = 50; + public const int ScorePropAddSpeed = 10; + public const int ScorePropClairaudience = 10; + public const int ScorePropAddHp = 20; + public const int ScorePropRecoverFromDizziness = 20; public static int ScoreUseSkill(ActiveSkillType activeSkillType) { diff --git a/logic/Server/CopyInfo.cs b/logic/Server/CopyInfo.cs index 4404046..3360b6d 100644 --- a/logic/Server/CopyInfo.cs +++ b/logic/Server/CopyInfo.cs @@ -56,6 +56,8 @@ namespace Server return Protobuf.PropType.AddHpOrAp; case Preparation.Utility.PropType.ShieldOrSpear: return Protobuf.PropType.ShieldOrSpear; + case Preparation.Utility.PropType.RecoveryFromDizziness: + return Protobuf.PropType.RecoveryFromDizziness; case Preparation.Utility.PropType.Key3: return Protobuf.PropType.Key3; case Preparation.Utility.PropType.Key5: @@ -79,6 +81,8 @@ namespace Server return Preparation.Utility.PropType.AddHpOrAp; case Protobuf.PropType.ShieldOrSpear: return Preparation.Utility.PropType.ShieldOrSpear; + case Protobuf.PropType.RecoveryFromDizziness: + return Preparation.Utility.PropType.RecoveryFromDizziness; case Protobuf.PropType.Key3: return Preparation.Utility.PropType.Key3; case Protobuf.PropType.Key5: diff --git a/logic/规则Logic.md b/logic/规则Logic.md index 7a7b802..0867006 100644 --- a/logic/规则Logic.md +++ b/logic/规则Logic.md @@ -346,13 +346,14 @@ | 道具 | 对学生增益 | [学生得分条件] | 对搞蛋鬼增益 | [搞蛋鬼得分条件] | | :-------- | :-------------------------------------- | :-----------------| :-------------------------------------- |:-----------------| -| AddSpeed | 提高移动速度,持续10s |不得分| 提高移动速度,持续10s |不得分| -| AddLifeOrClairaudience |若在10s内Hp归零,该增益消失以使Hp保留100|在10s内Hp归零,得分? |10秒内下一次攻击增伤1800000|10秒内有一次攻击,得分? | -| AddHpOrAp |回血1500000 | 回血成功 | 10秒内下一次攻击增伤1800000|10秒内有一次攻击,得分? | -| ShieldOrSpear | 10秒内能抵挡一次伤害 | 10秒内成功抵挡一次伤害 |10秒内下一次攻击能破盾,如果对方无盾,则增伤900000| 10秒内攻击中学生| | Key3 | 能开启3教的门 |不得分| 能开启3教的门 |不得分| | Key5 | 能开启5教的门 |不得分| 能开启3教的门 |不得分| | Key6 | 能开启6教的门 |不得分| 能开启3教的门 |不得分| +| AddSpeed | 提高移动速度,持续10s |得分?| 提高移动速度,持续10s |得分?| +| AddLifeOrClairaudience |若在10s内Hp归零,该增益消失以使Hp保留100|在10s内Hp归零,得分? |10秒内下一次攻击增伤1800000|10秒内有一次攻击,得分? | +| AddHpOrAp |回血1500000 | 回血成功 | 10秒内下一次攻击增伤1800000|10秒内有一次攻击,得分? | +| ShieldOrSpear | 10秒内能抵挡一次伤害 | 10秒内成功抵挡一次伤害 |10秒内下一次攻击能破盾,如果对方无盾,则增伤900000| 10秒内攻击中学生| +| RecoveryFromDizziness | 使用瞬间从眩晕状态中恢复 | 成功从眩晕状态中恢复,得分?|使用瞬间从眩晕状态中恢复 | 成功从眩晕状态中恢复,得分?| ## 职业与技能 @@ -528,7 +529,3 @@ | B | (Both)使用0号技能 | | N | (Both)使用1号技能 | | M | (Both)使用2号技能 | - - - ->>>>>>> 4219415cba0600879a5b134a4067e729c868e84b