Browse Source

fix: 🚑 fix the bug about SparksNSplash

tags/v0.1.0
shangfengh 2 years ago
parent
commit
dc4f63ae5c
3 changed files with 28 additions and 6 deletions
  1. +22
    -1
      logic/GameClass/GameObj/Map/Map.cs
  2. +3
    -3
      logic/Gaming/Game.cs
  3. +3
    -2
      logic/Gaming/SkillManager/SkillManager.ActiveSkill.cs

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

@@ -173,7 +173,7 @@ namespace GameClass.GameObj
return new OutOfBoundBlock(pos);
}

public Character? FindPlayer(long playerID)
public Character? FindPlayerInID(long playerID)
{
Character? player = null;
gameObjLockDict[GameObjType.Character].EnterReadLock();
@@ -194,6 +194,27 @@ namespace GameClass.GameObj
}
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 Character? FindPlayerToAction(long playerID)
{


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

@@ -102,7 +102,7 @@ namespace Gaming
}
else
{
ICharacter? playerTreated = gameMap.FindPlayer(playerTreatedID);
ICharacter? playerTreated = gameMap.FindPlayerInID(playerTreatedID);
if (player != null && playerTreated != null)
{
if (!playerTreated.IsGhost() && !player.IsGhost())
@@ -123,7 +123,7 @@ namespace Gaming
}
else
{
ICharacter? playerRescued = gameMap.FindPlayer(playerRescuedID);
ICharacter? playerRescued = gameMap.FindPlayerInID(playerRescuedID);
if (player != null && playerRescued != null)
{
if (!playerRescued.IsGhost() && !player.IsGhost())
@@ -267,7 +267,7 @@ namespace Gaming
{
if (!gameMap.Timer.IsGaming)
return false;
Character? player = gameMap.FindPlayer(playerID);
Character? player = gameMap.FindPlayerInID(playerID);
if (player != null)
{
if (player.Occupation.ListOfIActiveSkill.Count <= skillNum) return false;


+ 3
- 2
logic/Gaming/SkillManager/SkillManager.ActiveSkill.cs View File

@@ -160,8 +160,9 @@ namespace Gaming

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);

return ActiveSkillEffect(activeSkill, player, () =>


Loading…
Cancel
Save