From aec9cb9c9a27a49c897e0d2ee239f18b24dcbc76 Mon Sep 17 00:00:00 2001 From: shangfengh <3495281661@qq.com> Date: Sat, 27 May 2023 02:01:57 +0800 Subject: [PATCH] refactor: :art: refactor the Chest and so on --- logic/GameClass/GameObj/Map/Chest.cs | 4 ++-- logic/GameClass/GameObj/Map/Door.cs | 1 + logic/Gaming/ActionManager.cs | 9 +-------- 3 files changed, 4 insertions(+), 10 deletions(-) diff --git a/logic/GameClass/GameObj/Map/Chest.cs b/logic/GameClass/GameObj/Map/Chest.cs index 1d86d3d..ddacde2 100644 --- a/logic/GameClass/GameObj/Map/Chest.cs +++ b/logic/GameClass/GameObj/Map/Chest.cs @@ -25,7 +25,7 @@ namespace GameClass.GameObj public Character? WhoOpen => whoOpen; public bool Open(Character character) { - lock (GameObjReaderWriterLock) + lock (gameObjLock) { if (whoOpen != null) return false; openStartTime = Environment.TickCount64; @@ -35,7 +35,7 @@ namespace GameClass.GameObj } public void StopOpen() { - lock (GameObjReaderWriterLock) + lock (gameObjLock) { whoOpen = null; } diff --git a/logic/GameClass/GameObj/Map/Door.cs b/logic/GameClass/GameObj/Map/Door.cs index c4c6527..ab459b5 100644 --- a/logic/GameClass/GameObj/Map/Door.cs +++ b/logic/GameClass/GameObj/Map/Door.cs @@ -98,6 +98,7 @@ namespace GameClass.GameObj if (whoLockOrOpen != null) { if ((Environment.TickCount64 - openStartTime) >= GameData.degreeOfLockingOrOpeningTheDoor / whoLockOrOpen.SpeedOfOpeningOrLocking) + //现在框架没有问题,但是调用可变的SpeedOfOpeningOrLocking可能死锁 isOpen = true; whoLockOrOpen = null; } diff --git a/logic/Gaming/ActionManager.cs b/logic/Gaming/ActionManager.cs index 0e0742e..522ac2f 100644 --- a/logic/Gaming/ActionManager.cs +++ b/logic/Gaming/ActionManager.cs @@ -52,14 +52,7 @@ namespace Gaming { moveEngine.MoveObj(playerToMove, moveTimeInMilliseconds, moveDirection, playerToMove.StateNum); Thread.Sleep(moveTimeInMilliseconds); - lock (playerToMove.ActionLock) - { - lock (playerToMove.ActionLock) - { - if (stateNum == playerToMove.StateNum) - playerToMove.SetPlayerStateNaturally(); - } - } + playerToMove.ResetPlayerState(stateNum); } } )