Browse Source

Merge pull request #604 from eesast/dev

fix: 🚑 fix the bug about trying to fix the fixed generator
tags/v0.1.0
shangfengh GitHub 2 years ago
parent
commit
ba01ca94c8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 10 deletions
  1. +5
    -2
      docs/版本更新说明.md
  2. +4
    -8
      logic/Gaming/ActionManager.cs

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

@@ -70,6 +70,9 @@
# 5月22日11:00更新 # 5月22日11:00更新
- fix:修复了开校门的bug - fix:修复了开校门的bug


# 5月25日21:00更新
- fix:修复了多线程的问题
- fix:修复了终局得分的问题

# 5月25日更新 # 5月25日更新
- fix:修复了Semaphore设置错误的问题
- fix:修复了终局得分的问题
- fix:修复了可以学习完成作业的问题

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

@@ -85,6 +85,9 @@ namespace Gaming
Generator? generatorForFix = (Generator?)gameMap.OneForInteract(player.Position, GameObjType.Generator); Generator? generatorForFix = (Generator?)gameMap.OneForInteract(player.Position, GameObjType.Generator);
if (generatorForFix == null) return false; if (generatorForFix == null) return false;


if (generatorForFix.DegreeOfRepair == GameData.degreeOfFixedGenerator)
return false;

long stateNum = player.SetPlayerState(RunningStateType.Waiting, PlayerStateType.Fixing); long stateNum = player.SetPlayerState(RunningStateType.Waiting, PlayerStateType.Fixing);
if (stateNum == -1) return false; if (stateNum == -1) return false;


@@ -93,11 +96,6 @@ namespace Gaming
() => () =>
{ {
player.ThreadNum.WaitOne(); player.ThreadNum.WaitOne();
if (generatorForFix.DegreeOfRepair == GameData.degreeOfFixedGenerator)
{
player.ThreadNum.Release();
return;
}
if (!player.StartThread(stateNum, RunningStateType.RunningActively)) if (!player.StartThread(stateNum, RunningStateType.RunningActively))
{ {
player.ThreadNum.Release(); player.ThreadNum.Release();
@@ -296,8 +294,7 @@ namespace Gaming
playerRescued = gameMap.StudentForInteract(player.Position); playerRescued = gameMap.StudentForInteract(player.Position);
if (playerRescued == null) return false; if (playerRescued == null) return false;
} }
// else//no need
// if (!GameData.ApproachToInteract(playerRescued.Position, player.Position)) return false;
else if (!GameData.ApproachToInteract(playerRescued.Position, player.Position)) return false;


long stateNumRescued = playerRescued.SetPlayerState(RunningStateType.Waiting, PlayerStateType.Rescued); long stateNumRescued = playerRescued.SetPlayerState(RunningStateType.Waiting, PlayerStateType.Rescued);
if (stateNumRescued == -1) return false; if (stateNumRescued == -1) return false;
@@ -322,7 +319,6 @@ namespace Gaming
} }


playerRescued.ThreadNum.WaitOne(); playerRescued.ThreadNum.WaitOne();
if (!GameData.ApproachToInteract(playerRescued.Position, player.Position)) return;


if (!playerRescued.StartThread(stateNumRescued, RunningStateType.RunningSleepily)) if (!playerRescued.StartThread(stateNumRescued, RunningStateType.RunningSleepily))
{ {


Loading…
Cancel
Save