Browse Source

build: 🚧 build the Prop-Score system

tags/0.1.0
shangfengh 2 years ago
parent
commit
81506132b5
6 changed files with 38 additions and 11 deletions
  1. +2
    -1
      dependency/proto/MessageType.proto
  2. +10
    -0
      logic/GameClass/GameObj/Prop.cs
  3. +13
    -1
      logic/Gaming/PropManager.cs
  4. +4
    -1
      logic/Preparation/Utility/GameData.cs
  5. +4
    -0
      logic/Server/CopyInfo.cs
  6. +5
    -8
      logic/规则Logic.md

+ 2
- 1
dependency/proto/MessageType.proto View File

@@ -49,6 +49,7 @@ enum PropType // 地图中的可拾取道具类型
KEY3 = 5; KEY3 = 5;
KEY5 = 6; KEY5 = 6;
KEY6 = 7; KEY6 = 7;
RECOVERY_FROM_DIZZINESS = 8;
} }


enum StudentBuffType // 人类可用的增益效果类型 enum StudentBuffType // 人类可用的增益效果类型
@@ -57,7 +58,7 @@ enum StudentBuffType // 人类可用的增益效果类型
SBUFFTYPE1 = 1;//AddSpeed SBUFFTYPE1 = 1;//AddSpeed
SBUFFTYPE2 = 2;//AddLIFE SBUFFTYPE2 = 2;//AddLIFE
SBUFFTYPE3 = 3;//Shield SBUFFTYPE3 = 3;//Shield
SBUFFTYPE4 = 4;
SBUFFTYPE4 = 4;//INVISIBLE
} }


enum PlayerState enum PlayerState


+ 10
- 0
logic/GameClass/GameObj/Prop.cs View File

@@ -68,6 +68,14 @@ namespace GameClass.GameObj
} }
public override PropType GetPropType() => PropType.AddHpOrAp; 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;
}
/// <summary> /// <summary>
/// 矛盾 /// 矛盾
/// </summary> /// </summary>
@@ -147,6 +155,8 @@ namespace GameClass.GameObj
return new ShieldOrSpear(pos, place); return new ShieldOrSpear(pos, place);
case PropType.AddHpOrAp: case PropType.AddHpOrAp:
return new AddHpOrAp(pos, place); return new AddHpOrAp(pos, place);
case PropType.RecoveryFromDizziness:
return new RecoveryFromDizziness(pos, place);
case PropType.Key3: case PropType.Key3:
return new Key3(pos, place); return new Key3(pos, place);
case PropType.Key5: case PropType.Key5:


+ 13
- 1
logic/Gaming/PropManager.cs View File

@@ -34,9 +34,14 @@ namespace Gaming
case PropType.AddLifeOrClairaudience: case PropType.AddLifeOrClairaudience:
if (!player.IsGhost()) if (!player.IsGhost())
player.AddLIFE(GameData.PropDuration); player.AddLIFE(GameData.PropDuration);
else player.AddClairaudience(GameData.PropDuration);
else
{
player.AddScore(GameData.ScorePropClairaudience);
player.AddClairaudience(GameData.PropDuration);
}
break; break;
case PropType.AddSpeed: case PropType.AddSpeed:
player.AddScore(GameData.ScorePropAddSpeed);
player.AddMoveSpeed(GameData.PropDuration); player.AddMoveSpeed(GameData.PropDuration);
break; break;
case PropType.AddHpOrAp: case PropType.AddHpOrAp:
@@ -48,6 +53,13 @@ namespace Gaming
} }
else player.AddAp(GameData.PropDuration); else player.AddAp(GameData.PropDuration);
break; break;
case PropType.RecoveryFromDizziness:
if (player.PlayerState == PlayerStateType.Stunned)
{
player.AddScore(GameData.ScorePropRecoverFromDizziness);
player.PlayerState = PlayerStateType.Null;
}
break;
default: default:
break; break;
} }


+ 4
- 1
logic/Preparation/Utility/GameData.cs View File

@@ -151,7 +151,10 @@ namespace Preparation.Utility
public const int ScorePropUseShield = 20; public const int ScorePropUseShield = 20;
public const int ScorePropUseSpear = 20; public const int ScorePropUseSpear = 20;
public const int ScorePropAddAp = 10; 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) public static int ScoreUseSkill(ActiveSkillType activeSkillType)
{ {


+ 4
- 0
logic/Server/CopyInfo.cs View File

@@ -56,6 +56,8 @@ namespace Server
return Protobuf.PropType.AddHpOrAp; return Protobuf.PropType.AddHpOrAp;
case Preparation.Utility.PropType.ShieldOrSpear: case Preparation.Utility.PropType.ShieldOrSpear:
return Protobuf.PropType.ShieldOrSpear; return Protobuf.PropType.ShieldOrSpear;
case Preparation.Utility.PropType.RecoveryFromDizziness:
return Protobuf.PropType.RecoveryFromDizziness;
case Preparation.Utility.PropType.Key3: case Preparation.Utility.PropType.Key3:
return Protobuf.PropType.Key3; return Protobuf.PropType.Key3;
case Preparation.Utility.PropType.Key5: case Preparation.Utility.PropType.Key5:
@@ -79,6 +81,8 @@ namespace Server
return Preparation.Utility.PropType.AddHpOrAp; return Preparation.Utility.PropType.AddHpOrAp;
case Protobuf.PropType.ShieldOrSpear: case Protobuf.PropType.ShieldOrSpear:
return Preparation.Utility.PropType.ShieldOrSpear; return Preparation.Utility.PropType.ShieldOrSpear;
case Protobuf.PropType.RecoveryFromDizziness:
return Preparation.Utility.PropType.RecoveryFromDizziness;
case Protobuf.PropType.Key3: case Protobuf.PropType.Key3:
return Preparation.Utility.PropType.Key3; return Preparation.Utility.PropType.Key3;
case Protobuf.PropType.Key5: case Protobuf.PropType.Key5:


+ 5
- 8
logic/规则Logic.md View File

@@ -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教的门 |不得分| | Key3 | 能开启3教的门 |不得分| 能开启3教的门 |不得分|
| Key5 | 能开启5教的门 |不得分| 能开启3教的门 |不得分| | Key5 | 能开启5教的门 |不得分| 能开启3教的门 |不得分|
| Key6 | 能开启6教的门 |不得分| 能开启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号技能 | | B | (Both)使用0号技能 |
| N | (Both)使用1号技能 | | N | (Both)使用1号技能 |
| M | (Both)使用2号技能 | | M | (Both)使用2号技能 |



>>>>>>> 4219415cba0600879a5b134a4067e729c868e84b

Loading…
Cancel
Save