diff --git a/logic/GameClass/GameObj/Character.cs b/logic/GameClass/GameObj/Character.cs index 4135948..d9e59e7 100644 --- a/logic/GameClass/GameObj/Character.cs +++ b/logic/GameClass/GameObj/Character.cs @@ -341,10 +341,6 @@ public class Character : Movable, ICharacter } case EquipmentType.BERSERK_POTION: { - if (IsBerserk) - { - return false; - } IsBerserk = true; BerserkTime = Environment.TickCount64; SetCharacterState(CharacterState1, CharacterState.BERSERK);//此处缺少时间限制 diff --git a/logic/Gaming/CharacterManager.cs b/logic/Gaming/CharacterManager.cs index e42b3a2..6e6fc88 100644 --- a/logic/Gaming/CharacterManager.cs +++ b/logic/Gaming/CharacterManager.cs @@ -299,6 +299,7 @@ namespace Gaming character.Shoes.SubPositiveV(GameData.CrazySpeed); character.ATKFrequency = GameData.ATKFreq; character.BerserkTime = long.MaxValue; + character.IsBerserk = false; } } } @@ -314,7 +315,15 @@ namespace Gaming character.IsShoes = false; } } - + } + public void CheckInvisibility(Character character) + { + int nowtime = gameMap.Timer.NowTime(); + if (nowtime >= GameData.SevenMinutes + ) + { + character.visible = true; + } } } } diff --git a/logic/Gaming/Game.cs b/logic/Gaming/Game.cs index 74e540f..3eeb302 100644 --- a/logic/Gaming/Game.cs +++ b/logic/Gaming/Game.cs @@ -423,6 +423,18 @@ namespace Gaming { if (!gameMap.Timer.IsGaming) return false; + int nowtime = gameMap.Timer.NowTime(); + if (nowtime >= GameData.SevenMinutes) + { + if (equiptype == EquipmentType.INVISIBILITY_POTION) + { + return false; + } + } + else if (equiptype == EquipmentType.BERSERK_POTION) + { + return false; + } Character? character = gameMap.FindCharacterInPlayerID(teamID, characterID); if (character != null && character.IsRemoved == false) return equipManager.GetEquipment(character, equiptype); diff --git a/logic/Preparation/Utility/GameData.cs b/logic/Preparation/Utility/GameData.cs index 3ef8aae..9b0c142 100644 --- a/logic/Preparation/Utility/GameData.cs +++ b/logic/Preparation/Utility/GameData.cs @@ -214,5 +214,6 @@ namespace Preparation.Utility public const int InitialMoney = 5000; public const int CharacterTotalNumMax = 6; public const double RecycleRate = 0.5; + public const int SevenMinutes = 420000; } }