From 41c8392d40da777ea7972bc09954a8b62251965e Mon Sep 17 00:00:00 2001 From: shangfengh <3495281661@qq.com> Date: Sat, 8 Apr 2023 01:25:56 +0800 Subject: [PATCH] =?UTF-8?q?build:=20:construction:=20add=20AttackType=20in?= =?UTF-8?q?=20=E8=A7=84=E5=88=99Logic.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GameClass/GameObj/Bullet/Bullet.Ghost.cs | 12 +- logic/GameClass/GameObj/Map/Generator.cs | 13 ++ logic/Gaming/ActionManager.cs | 2 + logic/Gaming/CharacterManager .cs | 2 +- logic/Preparation/Utility/GameData.cs | 18 +-- logic/Preparation/Utility/Transformation.cs | 8 +- logic/规则Logic.md | 133 ++++++++---------- 7 files changed, 96 insertions(+), 92 deletions(-) diff --git a/logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs b/logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs index 63d9e68..6d5110c 100644 --- a/logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs +++ b/logic/GameClass/GameObj/Bullet/Bullet.Ghost.cs @@ -25,7 +25,7 @@ namespace GameClass.GameObj public override int Speed => GameData.basicBulletMoveSpeed; public override bool IsRemoteAttack => false; - public override int CastTime => (int)BulletAttackRange / Speed; + public override int CastTime => (int)BulletAttackRange * 1000 / Speed; public override int Backswing => GameData.basicBackswing; public override int RecoveryFromHit => GameData.basicRecoveryFromHit; public const int cd = GameData.basicBackswing; @@ -49,8 +49,8 @@ namespace GameClass.GameObj } } public override BulletType TypeOfBullet => BulletType.CommonAttackOfGhost; - } + internal sealed class FlyingKnife : Bullet { public FlyingKnife(Character player, PlaceType placeType, XY pos, int radius = GameData.bulletRadius) : @@ -75,7 +75,7 @@ namespace GameClass.GameObj public override int CastTime => GameData.basicCastTime; public override int Backswing => 0; public override int RecoveryFromHit => 0; - public const int cd = GameData.basicBackswing * 2 / 5 + 100; + public const int cd = GameData.basicBackswing / 2; public override int CD => cd; public const int maxBulletNum = 1; public override int MaxBulletNum => maxBulletNum; @@ -117,10 +117,10 @@ namespace GameClass.GameObj ap = value; } } - public override int Speed => (int)(GameData.basicBulletMoveSpeed * 0.8); + public override int Speed => (int)(GameData.basicBulletMoveSpeed * 30 / 37); public override bool IsRemoteAttack => false; - public override int CastTime => (int)BulletAttackRange / Speed; + public override int CastTime => (int)(BulletAttackRange * 1000 / Speed); public override int Backswing => GameData.basicRecoveryFromHit; public override int RecoveryFromHit => GameData.basicRecoveryFromHit; public const int cd = GameData.basicCD; @@ -164,7 +164,7 @@ namespace GameClass.GameObj ap = value; } } - public override int Speed => (int)(GameData.basicBulletMoveSpeed * 1.2); + public override int Speed => 4300; public override bool IsRemoteAttack => false; public override int CastTime => 0; diff --git a/logic/GameClass/GameObj/Map/Generator.cs b/logic/GameClass/GameObj/Map/Generator.cs index 53d9d14..4718f65 100644 --- a/logic/GameClass/GameObj/Map/Generator.cs +++ b/logic/GameClass/GameObj/Map/Generator.cs @@ -16,6 +16,19 @@ namespace GameClass.GameObj public override bool IsRigid => true; public override ShapeType Shape => ShapeType.Square; + private int numOfFixing = 0; + public int NumOfFixing + { + get => numOfFixing; + set + { + lock (gameObjLock) + { + numOfFixing = value; + } + } + } + private int degreeOfRepair = 0; public int DegreeOfRepair { diff --git a/logic/Gaming/ActionManager.cs b/logic/Gaming/ActionManager.cs index 39e5c32..78ab3a4 100644 --- a/logic/Gaming/ActionManager.cs +++ b/logic/Gaming/ActionManager.cs @@ -62,6 +62,7 @@ namespace Gaming if (generatorForFix == null || generatorForFix.DegreeOfRepair == GameData.degreeOfFixedGenerator) return false; + ++generatorForFix.NumOfFixing; player.PlayerState = PlayerStateType.Fixing; new Thread ( @@ -85,6 +86,7 @@ namespace Gaming ) { IsBackground = true }.Start(); + --generatorForFix.NumOfFixing; return true; } diff --git a/logic/Gaming/CharacterManager .cs b/logic/Gaming/CharacterManager .cs index c0314cd..ce867fc 100644 --- a/logic/Gaming/CharacterManager .cs +++ b/logic/Gaming/CharacterManager .cs @@ -161,7 +161,7 @@ namespace Gaming { if (XY.Distance(newPlayer.Position, generator.Position) <= newPlayer.AlertnessRadius) { - if (generator.DegreeOfRepair < GameData.degreeOfFixedGenerator && (double)newPlayer.AlertnessRadius * generator.DegreeOfRepair / GameData.degreeOfFixedGenerator / XY.Distance(newPlayer.Position, generator.Position) > bgmVolume) + if (generator.NumOfFixing > 0 && (double)newPlayer.AlertnessRadius * generator.DegreeOfRepair / GameData.degreeOfFixedGenerator / XY.Distance(newPlayer.Position, generator.Position) > bgmVolume) bgmVolume = (double)newPlayer.AlertnessRadius * generator.DegreeOfRepair / GameData.degreeOfFixedGenerator / XY.Distance(newPlayer.Position, generator.Position); } } diff --git a/logic/Preparation/Utility/GameData.cs b/logic/Preparation/Utility/GameData.cs index 03ad6b5..3abe63f 100644 --- a/logic/Preparation/Utility/GameData.cs +++ b/logic/Preparation/Utility/GameData.cs @@ -83,11 +83,11 @@ namespace Preparation.Utility public const int characterRadius = numOfPosGridPerCell * 4 / 10; // 人物半径 public const int basicTreatSpeed = 100; - public const int basicFixSpeed = 100; - public const int basicSpeedOfOpeningOrLocking = 40; + public const int basicFixSpeed = 123; + public const int basicSpeedOfOpeningOrLocking = 4130; public const int basicStudentSpeedOfClimbingThroughWindows = 611; public const int basicGhostSpeedOfClimbingThroughWindows = 1270; - public const int basicSpeedOfOpenChest = 100; + public const int basicSpeedOfOpenChest = 1000; public const int basicHp = 3000000; // 初始血量 public const int basicMaxGamingAddiction = 60000;//基本完全沉迷时间 @@ -185,11 +185,11 @@ namespace Preparation.Utility public const int basicCD = 3000; // 初始子弹冷却 public const int basicCastTime = 500;//基本前摇时间 - public const int basicBackswing = 818;//基本后摇时间 + public const int basicBackswing = 800;//基本后摇时间 public const int basicRecoveryFromHit = 3700;//基本命中攻击恢复时长 - public const int basicStunnedTimeOfStudent = 4130; + public const int basicStunnedTimeOfStudent = 4300; - public const int basicBulletMoveSpeed = 1800; // 基本子弹移动速度,单位:s-1 + public const int basicBulletMoveSpeed = 3700; // 基本子弹移动速度,单位:s-1 public const double basicRemoteAttackRange = 3000; // 基本远程攻击范围 public const double basicAttackShortRange = 1100; // 基本近程攻击范围 public const double basicBulletBombRange = 1000; // 基本子弹爆炸范围 @@ -230,9 +230,9 @@ namespace Preparation.Utility public const int numOfTeachingBuilding = 3; #endregion #region 物体相关 - public const int degreeOfFixedGenerator = 8180000; - public const int degreeOfLockingOrOpeningTheDoor = 100000; - public const int degreeOfOpenedChest = 100000; + public const int degreeOfFixedGenerator = 10000000; + public const int degreeOfLockingOrOpeningTheDoor = 10000000; + public const int degreeOfOpenedChest = 10000000; public const int degreeOfOpenedDoorway = 18000; public const int maxNumOfPropInChest = 2; public const int numOfGeneratorRequiredForRepair = 7; diff --git a/logic/Preparation/Utility/Transformation.cs b/logic/Preparation/Utility/Transformation.cs index fecfdd9..2735503 100644 --- a/logic/Preparation/Utility/Transformation.cs +++ b/logic/Preparation/Utility/Transformation.cs @@ -40,6 +40,7 @@ namespace Preparation.Utility return Protobuf.PlaceType.NullPlaceType; } } + public static Protobuf.PropType ToPropType(Preparation.Utility.PropType prop) { switch (prop) @@ -64,7 +65,6 @@ namespace Preparation.Utility return Protobuf.PropType.NullPropType; } } - public static Preparation.Utility.PropType ToPropType(Protobuf.PropType prop) { switch (prop) @@ -133,6 +133,7 @@ namespace Preparation.Utility return PlayerState.NullStatus; } } + public static Protobuf.StudentBuffType ToStudentBuffType(Preparation.Utility.BuffType buffType) { switch (buffType) @@ -167,6 +168,7 @@ namespace Preparation.Utility return Protobuf.TrickerBuffType.NullTbuffType; } } + public static Protobuf.BulletType ToBulletType(Preparation.Utility.BulletType bulletType) { switch (bulletType) @@ -202,7 +204,6 @@ namespace Preparation.Utility return Protobuf.StudentType.NullStudentType; } } - public static Preparation.Utility.CharacterType ToStudentType(Protobuf.StudentType characterType) { switch (characterType) @@ -221,6 +222,7 @@ namespace Preparation.Utility return Preparation.Utility.CharacterType.Null; } } + public static Protobuf.TrickerType ToTrickerType(Preparation.Utility.CharacterType characterType) { switch (characterType) @@ -235,7 +237,6 @@ namespace Preparation.Utility return Protobuf.TrickerType.NullTrickerType; } } - public static Preparation.Utility.CharacterType ToTrickerType(Protobuf.TrickerType characterType) { switch (characterType) @@ -250,6 +251,5 @@ namespace Preparation.Utility return Preparation.Utility.CharacterType.Null; } } - } } \ No newline at end of file diff --git a/logic/规则Logic.md b/logic/规则Logic.md index 536e3e1..d0ac932 100644 --- a/logic/规则Logic.md +++ b/logic/规则Logic.md @@ -5,7 +5,7 @@ - []表示待决定 ## 游戏简介 -- 1位监管者对抗4位求生者的非对称竞技模式 +- 1位捣蛋鬼对抗4位学生的非对称竞技模式 - [本届THUAI电子系赛道为以4名同学和1名捣蛋鬼的求学与阻挠展开的非对称竞技模式,同学需要完成足够的家庭作业和考试,相互督促以避免沉迷娱乐生活,利用道具地形躲避捣蛋鬼的各种干扰诱惑,完成学业;捣蛋鬼则要极力阻止。] - [我们的设计是一个非对称游戏,类似第五人格,分为学生、捣蛋鬼两个阵营。在游戏中,学生修完若干课程之后通过考试即可顺利毕业,捣蛋鬼试图干扰学生使其沉迷游戏,以致于无法修完规定课程,直至挂科、退学。] [对于选手来说,需要提前制定好学生的学习方案以抵御对方捣蛋鬼的干扰,类似地,也需要制定好捣蛋鬼的行动策略以影响对方学生的学习,也即每队至少要写好两份代码以执行不同阵营的不同策略。] @@ -22,21 +22,21 @@ - 地图上的每个格子有自己的区域类型:陆地、墙、草地、电机、出口、紧急出口、门、窗、箱子 ### 人物状态 -游戏人物共有17种不可叠加的状态:(加*为学生独有) +游戏人物共有17种不可叠加的状态:(加^为学生独有) 1.普通状态 -2*.学习 -3*.被治疗 -4*.在治疗 +2^.学习 +3^.被治疗 +4^.在治疗 5.开或锁门 6.翻箱 7.使用技能 -8*.正在毕业 -9*.唤醒他人中 +8^.正在毕业 +9^.唤醒他人中 -10*.被唤醒中(从沉迷状态中) -11*.沉迷 -12*.退学 -13*.毕业 +10^.被唤醒中(从沉迷状态中) +11^.沉迷 +12^.退学 +13^.毕业 14.被眩晕 15.前摇 16.后摇 @@ -50,16 +50,17 @@ - 翻窗时玩家应当在目标前后左右一个格子内 #### 破译与逃脱 -- 每张地图都有10台电机,求生者需要破译其中的7台,并开启任意一个大门(总所需时间为18秒)后从任意一个开启的大门逃脱,亦或者在只剩1名求生者的情况下从紧急出口逃脱; -- 紧急出口会在电机破译完成3台的情况下在地图的3-5个固定紧急出口刷新点之一随机刷新。 -- 当求生者只剩1名时,紧急出口将会自动打开,该求生者可从紧急出口逃脱。 +- 每张地图都有10台电机,学生需要破译其中的**7台**,并开启任意大门(总所需时间为18秒)后从开启的大门逃脱,亦或在只剩1名学生的情况下从紧急出口逃脱; +- 紧急出口会在电机破译完成3台的情况下在地图的3-5个固定紧急出口刷新点之一随机刷新显示。 +- 当学生只剩1名时,紧急出口将会自动打开,该学生可从紧急出口逃脱。 - 大门开启的进度不清空 #### 攻击 -- 无论近战远程均产生子弹以表示攻击所至距离 -- 攻击时,从播放攻击动作到可以开始产生伤害的期间,称为前摇。前摇期间攻击被打断时,子弹消失。 +- 无论近战远程均产生bullet以表示攻击所至距离 +- 如果有前摇,前摇最大时间一般为攻击最远距离/bullet移动速度。前摇期间攻击被打断时,子弹消失。 - 无论搞蛋鬼或学生,攻击后,通常会出现一段无伤害判定的攻击动作后置时间,称为后摇。击中物体时后摇更长 -- 捣蛋鬼攻击或一些特定技能击中以下状态的求生者,将使求生者眩晕4.13s +- 搞蛋鬼可以攻击未修完的作业,造成(攻击力*2/100000)%的 +- 捣蛋鬼攻击或一些特定技能击中以下状态的学生,将使学生眩晕4.3s 1. 处于前摇或后摇 2. 治疗或解救他人 3. 修理电机 @@ -73,11 +74,11 @@ - 治疗中断时,被治疗程度保留;被治疗者遭到攻击时被治疗程度清空 #### 沉迷与唤醒 -- 当求生者血量归零时,求生者自动原地进入沉迷状态,每毫秒增加1沉迷度 -- 该学生可由其他的求生者唤醒,唤醒后,血量恢复至1/2并可以重新行动。沉迷程度不清空。 +- 当学生血量归零时,学生自动原地进入沉迷状态,每毫秒增加1沉迷度 +- 该学生可由其他的学生唤醒,唤醒后,血量恢复至1/2并可以重新行动。沉迷程度不清空。 - 一般情况下,唤醒时间为1秒。 -- 进入沉迷状态时。如果求生者原本沉迷程度在(0,其最大沉迷度/3)中,求生者沉迷程度直接变为其最大沉迷度/3;如果求生者原本沉迷程度在[其最大沉迷度/3,其最大沉迷度*2/3)中,求生者沉迷程度直接变为其最大沉迷度*2/3;如果求生者原本沉迷程度大于其最大沉迷度*2/3,从游戏中出局; -- 当求生者沉迷程度达到该玩家最大沉迷程度时,从游戏中出局 +- 进入沉迷状态时。如果学生原本沉迷程度在(0,其最大沉迷度/3)中,学生沉迷程度直接变为其最大沉迷度/3;如果学生原本沉迷程度在[其最大沉迷度/3,其最大沉迷度x2/3)中,学生沉迷程度直接变为其最大沉迷度x2/3;如果学生原本沉迷程度大于其最大沉迷度x2/3,从游戏中出局; +- 当学生沉迷程度达到该玩家最大沉迷程度时,从游戏中出局 #### 门 - 门分别属于三个教学区:三教,五教,六教 @@ -87,7 +88,7 @@ - 锁门时其他人可以进入门所在格子,锁门过程中断 #### 窗 -- 通常情况下监管者翻越窗户的速度高于求生者。 +- 通常情况下捣蛋鬼翻越窗户的速度高于学生。 - 有人正在翻越窗户时,其他玩家均不可以翻越该窗户。 #### 箱子 @@ -95,13 +96,17 @@ - 开启箱子的基础持续时间为10秒。 - 箱子道具不刷新 +#### Bgm +1. 不详的感觉:捣蛋鬼进入(学生的警戒半径/捣蛋鬼的隐蔽度)时,学生收到;捣蛋鬼距离学生越近,Bgm音量越大。bgmVolume=(警戒半径/二者距离) +2. 期待搞事的感觉:学生进入(捣蛋鬼的警戒半径/学生的隐蔽度)时,捣蛋鬼收到;捣蛋鬼距离学生越近,Bgm音量越大。bgmVolume=(警戒半径/可被发觉的最近的学生距离) +3. 学习的声音: 捣蛋鬼警戒半径内有人学习时收到;bgmVolume=(警戒半径x学习进度百分比)/二者距离 + ### 得分 #### 屠夫 - [Tricker对Student造成伤害时,得伤害*100/基本伤害(1500000)分。] - *[使用道具/技能得分]* - - 需要造成一定效果才能获取分数,仅使用不得分 - 不同道具/技能有不同得分 - 使Student进入沉迷状态时,得50分。 - 使人类进入眩晕状态时,得25分。 @@ -141,16 +146,16 @@ | 捣蛋鬼职业 | 基本量 | Assassin | Klee | 喧哗者ANoisyPerson | | :------------ | :--------------------- | :--------------------- | :--------------------- | :--------------------- | -| 移动速度 | 1,503 | 1.1 | 1 | 1.07 | +| 移动速度/s | 1,503 | 1.1 | 1 | 1.07 | | 隐蔽度 | 1.0 | 1.5 | 1 | 0.8 | | 警戒范围 | 17000 | 1.3 | 1 | 0.9 | | 视野范围 | 15000 | 1.2 | 1 | 1 | -| 开锁门时间(ms)| 2500 | 1/1 | 1 | 1 | +| 开锁门时间/s | 41.3% | 1 | 1 | 1 | | 翻窗速度 | 1270 | 1 | 1 | 1.1 | -| 翻箱时间(ms) | 10000 | 1/1 | 1/1.1 | 1 | +| 翻箱时间/s | 10% | 1 | 1.1 | 1 | #### 刺客 -- 普通攻击为 CommonAttackOfGhost +- 普通攻击为 搞蛋鬼的一般攻击 - 主动技能 - 隐身 - CD:30s 持续时间:6s @@ -159,26 +164,26 @@ - 使用飞刀 - CD:20s 持续时间:1s - 在持续时间内,攻击类型变为飞刀 - - 不得分 + - 不直接得分 #### Klee -- 普通攻击为 CommonAttackOfGhost +- 普通攻击为 搞蛋鬼的一般攻击 - 主动技能 - 蹦蹦炸弹 - CD:15s 持续时间:3s - 在持续时间内,攻击类型变为蹦蹦炸弹 - 当蹦蹦炸弹因为碰撞而爆炸,向子弹方向上加上90°,270° 发出2个小炸弹 - 2个小炸弹运动停止前会因为碰撞爆炸,停止运动后学生碰撞会造成眩晕3.07s - - 不得分 + - 不直接得分,通过眩晕等获得对应得分 #### 喧哗者 -- 普通攻击为 CommonAttackOfGhost +- 普通攻击为 搞蛋鬼的一般攻击 - 主动技能 - 嚎叫 - CD:25s - 使用瞬间,在视野半径范围内(不是可视区域)的学生被眩晕6110ms,自己进入3070ms的后摇 - 通过眩晕获得对应得分 -- 被动技能 +- 特性 - 在场所有学生Bgm系统被设为无用的值 @@ -189,14 +194,14 @@ | 移动速度 | 1,270 | 3 / 4 | 1.1 | 0.8 | 1 | | 最大毅力值 | 3000000 | 10 | 1 | 1.1 | 32/30 | | 最大沉迷度 | 60000 | 10 | 0.9 | 1.3 | 1.1 | -| 学习一科时间(ms) | 81800 | 1/0 | 10/6 | 10/11 | 1 | +| 学习一科速度/s | 1.23% | 0 | 0.6 | 1.1 | 1 | | 治疗速度 | 100 | 0.7 | 0.8 | 0.8 | 2 | | 隐蔽度 | 1.0 | 0.5 | 0.9 | 0.9 | 1 | | 警戒范围 | 15000 | 0.5 | 1 | 0.9 | 1 | | 视野范围 | 10000 | 0.9 | 1.1 | 0.9 | 1 | -| 开锁门时间(ms)| 2500 | 1/1 | 1 | 1 | 1 | +| 开锁门时间/s | 4.13% | 1 | 1 | 1 | 1 | | 翻窗速度 | 1270 | 0.5 | 1.2 | 10/12 | 1 | -| 翻箱时间(ms) | 10000 | 1/1 | 1 | 1 | 1 | +| 翻箱时间/s | 10% | 1 | 1 | 1 | 1 | #### 运动员 - 主动技能 @@ -215,15 +220,15 @@ - 教师无法获得牵制得分 #### 学霸 -- 被动技能 +- 特性 - 冥想 - - 当玩家处于可接受指令状态且不在修机时,会积累学习进度,速度为(GameData.basicFixSpeed / 4)/ms + - 当玩家处于可接受指令状态且不在修机时,会积累学习进度,速度为0.3%/ms - 受到攻击(并非伤害)或眩晕或翻窗(或攻击他人)学习进度清零 -- 主动技能 +- 主动技能5 - 写答案 - CD:30s - 使用瞬间,对于可互动范围内的一台电机增加这个学习进度 - - 不得分 + - 通过修机获得对应得分 #### 开心果 - 主动技能 @@ -233,13 +238,26 @@ - 通过唤醒获得对应得分 - 勉励 - CD:60s - - 使用瞬间,治疗完成可视范围内一个毅力不足中的人 + - 使用瞬间,治疗完成可视范围内一个毅力不足的人 - 通过治疗获得对应得分 - 鼓舞 - CD:60s - 使用瞬间,可视范围内学生(包括自己)获得持续6秒的1.6倍速Buff - 每鼓舞一个学生得分10 +### 攻击类型 +| 攻击类型 |搞蛋鬼的一般攻击CommonAttackOfGhost| 飞刀FlyingKnife | 蹦蹦炸弹BombBomb | JumpyDumpty | +| :------------ | :--------------------- | :--------------------- | :--------------------- | :--------------------- | +| 子弹爆炸范围 | 0 | 0 | 1000 | 500 | +| 子弹攻击距离 | 1100 | 39000 | 1100 | 2200 | +| 攻击力 | 1500000 | 1,200,000 | 1,800,000 | 900000 | +| 移动速度/s | 3700 | 7,400 | 3000 | 4300 | +| 有无前摇(ms) | 297 | 500 | 366 | 0 | +|未攻击至目标时的后摇(ms)| 800 | 0 | 3700 | 0 | +|攻击至目标时的后摇(ms)| 3700 | 0 | 3700 | 0 | +| CD(ms) | 800 | 400 | 3000 | - | +| 最大子弹容量 | 1 | 1 | 1 | - | + ## 游戏数据 请自行查看Logic/Preparation/Utility/GameData.cs @@ -247,6 +265,7 @@ ## 细则 ### 特殊说明 + - 不加说明,这里“学生”往往包括职业“教师” ### 初始状态 @@ -261,7 +280,8 @@ - 一个大门同时最多可以由一人开启 ### 攻击 -- 每次求生者受到攻击后会损失对应子弹的攻击力的血量 +- 每次学生受到攻击后会损失对应子弹的攻击力的血量 +- 此处,前摇指 从播放攻击动作开始 攻击者不能交互 的时间 ### 沉迷与唤醒 - 在被救时沉迷度不增加 @@ -287,37 +307,6 @@ - 底层实现中的属性,不代表界面全部都需要展示,也可能需要额外展示信息 - 只展示外部需要的属性,部分属性被省略 -### BgmType -- 枚举类BgmType - 1. 不详的感觉:监管者进入(求生者的警戒半径/监管者的隐蔽度)时,求生者收到;监管者距离求生者越近,Bgm音量越大。bgmVolume=(警戒半径/二者距离) - 2. 期待搞事的感觉:求生者进入(监管者的警戒半径/求生者的隐蔽度)时,监管者收到;监管者距离求生者越近,Bgm音量越大。bgmVolume=(警戒半径/可被发觉的最近的求生者距离) - 3. 修理电机的声音: 监管者警戒半径内有电机正在被修理时收到;bgmVolume=(警戒半径*电机修理程度/二者距离)/10300000 - ~~~csharp - public enum BgmType - { - Null = 0, - GhostIsComing = 1, - StudentIsApproaching = 2, - GeneratorIsBeingFixed = 3, - } - ~~~ - -### 技能 - ~~~csharp - public enum ActiveSkillType // 主动技能 - { - Null = 0, - BecomeInvisible = 1, - ... - UseKnife = 5, - BeginToCharge = 6 - } - public enum PassiveSkillType - { - Null = 0, - } - ~~~ - ### 物体 - 位置 - 位置地形