| @@ -173,7 +173,7 @@ namespace GameClass.GameObj | |||||
| return new OutOfBoundBlock(pos); | return new OutOfBoundBlock(pos); | ||||
| } | } | ||||
| public Character? FindPlayer(long playerID) | |||||
| public Character? FindPlayerInID(long playerID) | |||||
| { | { | ||||
| Character? player = null; | Character? player = null; | ||||
| gameObjLockDict[GameObjType.Character].EnterReadLock(); | gameObjLockDict[GameObjType.Character].EnterReadLock(); | ||||
| @@ -194,6 +194,27 @@ namespace GameClass.GameObj | |||||
| } | } | ||||
| return player; | return player; | ||||
| } | } | ||||
| public Character? FindPlayerInPlayerID(long playerID) | |||||
| { | |||||
| Character? player = null; | |||||
| gameObjLockDict[GameObjType.Character].EnterReadLock(); | |||||
| try | |||||
| { | |||||
| foreach (Character person in gameObjDict[GameObjType.Character]) | |||||
| { | |||||
| if (playerID == person.PlayerID) | |||||
| { | |||||
| player = person; | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| finally | |||||
| { | |||||
| gameObjLockDict[GameObjType.Character].ExitReadLock(); | |||||
| } | |||||
| return player; | |||||
| } | |||||
| public Ghost? ghost = null; | public Ghost? ghost = null; | ||||
| public Character? FindPlayerToAction(long playerID) | public Character? FindPlayerToAction(long playerID) | ||||
| { | { | ||||
| @@ -102,7 +102,7 @@ namespace Gaming | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| ICharacter? playerTreated = gameMap.FindPlayer(playerTreatedID); | |||||
| ICharacter? playerTreated = gameMap.FindPlayerInID(playerTreatedID); | |||||
| if (player != null && playerTreated != null) | if (player != null && playerTreated != null) | ||||
| { | { | ||||
| if (!playerTreated.IsGhost() && !player.IsGhost()) | if (!playerTreated.IsGhost() && !player.IsGhost()) | ||||
| @@ -123,7 +123,7 @@ namespace Gaming | |||||
| } | } | ||||
| else | else | ||||
| { | { | ||||
| ICharacter? playerRescued = gameMap.FindPlayer(playerRescuedID); | |||||
| ICharacter? playerRescued = gameMap.FindPlayerInID(playerRescuedID); | |||||
| if (player != null && playerRescued != null) | if (player != null && playerRescued != null) | ||||
| { | { | ||||
| if (!playerRescued.IsGhost() && !player.IsGhost()) | if (!playerRescued.IsGhost() && !player.IsGhost()) | ||||
| @@ -267,7 +267,7 @@ namespace Gaming | |||||
| { | { | ||||
| if (!gameMap.Timer.IsGaming) | if (!gameMap.Timer.IsGaming) | ||||
| return false; | return false; | ||||
| Character? player = gameMap.FindPlayer(playerID); | |||||
| Character? player = gameMap.FindPlayerInID(playerID); | |||||
| if (player != null) | if (player != null) | ||||
| { | { | ||||
| if (player.Occupation.ListOfIActiveSkill.Count <= skillNum) return false; | if (player.Occupation.ListOfIActiveSkill.Count <= skillNum) return false; | ||||
| @@ -160,8 +160,9 @@ namespace Gaming | |||||
| public bool SparksNSplash(Character player, int AttackID) | public bool SparksNSplash(Character player, int AttackID) | ||||
| { | { | ||||
| Character? whoAttacked = gameMap.FindPlayer(AttackID); | |||||
| if (whoAttacked == null || whoAttacked.NoHp()) return false; | |||||
| Character? whoAttacked = gameMap.FindPlayerInPlayerID(AttackID); | |||||
| if (whoAttacked == null || whoAttacked.NoHp()) | |||||
| return false; | |||||
| ActiveSkill activeSkill = player.FindActiveSkill(ActiveSkillType.SparksNSplash); | ActiveSkill activeSkill = player.FindActiveSkill(ActiveSkillType.SparksNSplash); | ||||
| return ActiveSkillEffect(activeSkill, player, () => | return ActiveSkillEffect(activeSkill, player, () => | ||||