Browse Source

Merge pull request #616 from eesast/dev

fix: 🚑fix the bug about interrupting of rescuing
tags/v0.1.0
shangfengh GitHub 2 years ago
parent
commit
f9867a8b08
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 21 additions and 5 deletions
  1. +5
    -1
      docs/版本更新说明.md
  2. +12
    -0
      logic/GameClass/GameObj/Character/Character.cs
  3. +3
    -3
      logic/Gaming/ActionManager.cs
  4. +1
    -1
      logic/Gaming/CharacterManager.cs

+ 5
- 1
docs/版本更新说明.md View File

@@ -84,5 +84,9 @@
- fix:修复了开校门的问题
- docs:摧毁一个TechOtaku的机器人,得50分。

# 5月26日10:30更新
- fix:修复了卡窗的问题
- hotfix:修复了救人线程崩溃的问题

# 5月26日更新
- fix:修复了卡窗的问题
- fix:修复了救人中断后不继续沉迷的问题

+ 12
- 0
logic/GameClass/GameObj/Character/Character.cs View File

@@ -607,6 +607,18 @@ namespace GameClass.GameObj
}
}

public bool ResetPlayerStateInOneThread(long state, RunningStateType running = RunningStateType.Null, PlayerStateType value = PlayerStateType.Null, IGameObj? obj = null)
{
lock (actionLock)
{
if (state != stateNum) return false;
this.runningState = running;
whatInteractingWith = (GameObj?)obj;
playerState = value;
return true;
}
}

public bool TryToRemoveFromGame(PlayerStateType playerStateType)
{
lock (actionLock)


+ 3
- 3
logic/Gaming/ActionManager.cs View File

@@ -307,7 +307,7 @@ namespace Gaming
long stateNum = player.SetPlayerState(RunningStateType.Waiting, PlayerStateType.Rescuing);
if (stateNum == -1)
{
playerRescued.ResetPlayerState(stateNumRescued, RunningStateType.RunningForcibly, PlayerStateType.Addicted);
playerRescued.ResetPlayerStateInOneThread(stateNumRescued, RunningStateType.RunningForcibly, PlayerStateType.Addicted);
return false;
}

@@ -319,7 +319,7 @@ namespace Gaming
if (!player.StartThread(stateNum, RunningStateType.RunningActively))
{
player.ThreadNum.Release();
playerRescued.ResetPlayerState(stateNumRescued, RunningStateType.RunningForcibly, PlayerStateType.Addicted);
playerRescued.ResetPlayerStateInOneThread(stateNumRescued, RunningStateType.RunningForcibly, PlayerStateType.Addicted);
return;
}

@@ -363,7 +363,7 @@ namespace Gaming
playerRescued.ThreadNum.Release();
if (player.ResetPlayerState(stateNum)) return;

playerRescued.ResetPlayerState(stateNumRescued, RunningStateType.RunningForcibly, PlayerStateType.Addicted);
playerRescued.ResetPlayerStateInOneThread(stateNumRescued, RunningStateType.RunningForcibly, PlayerStateType.Addicted);
}
)
{ IsBackground = true }.Start();


+ 1
- 1
logic/Gaming/CharacterManager.cs View File

@@ -218,7 +218,7 @@ namespace Gaming

public void BeAddictedToGame(Student player, Ghost ghost)
{
long stateNum = player.SetPlayerState(RunningStateType.Waiting, PlayerStateType.Addicted);
long stateNum = player.SetPlayerState(RunningStateType.RunningForcibly, PlayerStateType.Addicted);
if (stateNum == -1) return;

if (player.CharacterType == CharacterType.Robot)


Loading…
Cancel
Save