Browse Source

refactor: 🎨 refactor the Chest and so on

tags/v0.1.0
shangfengh 2 years ago
parent
commit
aec9cb9c9a
3 changed files with 4 additions and 10 deletions
  1. +2
    -2
      logic/GameClass/GameObj/Map/Chest.cs
  2. +1
    -0
      logic/GameClass/GameObj/Map/Door.cs
  3. +1
    -8
      logic/Gaming/ActionManager.cs

+ 2
- 2
logic/GameClass/GameObj/Map/Chest.cs View File

@@ -25,7 +25,7 @@ namespace GameClass.GameObj
public Character? WhoOpen => whoOpen; public Character? WhoOpen => whoOpen;
public bool Open(Character character) public bool Open(Character character)
{ {
lock (GameObjReaderWriterLock)
lock (gameObjLock)
{ {
if (whoOpen != null) return false; if (whoOpen != null) return false;
openStartTime = Environment.TickCount64; openStartTime = Environment.TickCount64;
@@ -35,7 +35,7 @@ namespace GameClass.GameObj
} }
public void StopOpen() public void StopOpen()
{ {
lock (GameObjReaderWriterLock)
lock (gameObjLock)
{ {
whoOpen = null; whoOpen = null;
} }


+ 1
- 0
logic/GameClass/GameObj/Map/Door.cs View File

@@ -98,6 +98,7 @@ namespace GameClass.GameObj
if (whoLockOrOpen != null) if (whoLockOrOpen != null)
{ {
if ((Environment.TickCount64 - openStartTime) >= GameData.degreeOfLockingOrOpeningTheDoor / whoLockOrOpen.SpeedOfOpeningOrLocking) if ((Environment.TickCount64 - openStartTime) >= GameData.degreeOfLockingOrOpeningTheDoor / whoLockOrOpen.SpeedOfOpeningOrLocking)
//现在框架没有问题,但是调用可变的SpeedOfOpeningOrLocking可能死锁
isOpen = true; isOpen = true;
whoLockOrOpen = null; whoLockOrOpen = null;
} }


+ 1
- 8
logic/Gaming/ActionManager.cs View File

@@ -52,14 +52,7 @@ namespace Gaming
{ {
moveEngine.MoveObj(playerToMove, moveTimeInMilliseconds, moveDirection, playerToMove.StateNum); moveEngine.MoveObj(playerToMove, moveTimeInMilliseconds, moveDirection, playerToMove.StateNum);
Thread.Sleep(moveTimeInMilliseconds); Thread.Sleep(moveTimeInMilliseconds);
lock (playerToMove.ActionLock)
{
lock (playerToMove.ActionLock)
{
if (stateNum == playerToMove.StateNum)
playerToMove.SetPlayerStateNaturally();
}
}
playerToMove.ResetPlayerState(stateNum);
} }
} }
) )


Loading…
Cancel
Save