public override void Execute(GameRoom.GameStatus oGameStatus) { int iIndex = oGameStatus.Players.FindIndex(item => item.Id == m_iTargetPlayerId); if (iIndex != -1) { oGameStatus.Players[iIndex].Health += m_iHealValue; } }
public override void Execute(GameRoom.GameStatus oGameStatus) { int iIndex = oGameStatus.Players.FindIndex(item => item.Id == m_iPlayerId); if (iIndex != -1) { Point p2Pos = oGameStatus.Players[iIndex].Position; p2Pos.X += m_p2Offset.X; p2Pos.Y += m_p2Offset.Y; oGameStatus.Players[iIndex].Position = p2Pos; } }
public override void Execute(GameRoom.GameStatus oGameStatus) { int iIndex = oGameStatus.Players.FindIndex(item => item.Id == m_iTargetPlayerId); if (iIndex != -1) { oGameStatus.Players[iIndex].Health -= m_iDamageValue; if (oGameStatus.Players[iIndex].Health <= 0) { GameRoom.AddOperation(new OperationRespawn(m_iTargetPlayerId)); } } }
public override void Execute(GameRoom.GameStatus oGameStatus) { int iIndex = oGameStatus.Players.FindIndex(item => item.Id == m_iPlayerId); if (iIndex != -1) { Point p2Pos = new Point(); p2Pos.X = enRandom.Get(0, 1000); // TMP. p2Pos.Y = enRandom.Get(0, 1000); // TMP. oGameStatus.Players[iIndex].Health = 100; oGameStatus.Players[iIndex].Position = p2Pos; // Respawn at random position. // TODO. Discard all operations applied to this iPlayerId but in previous life // TODO. Respond to client } }
public virtual void Execute(GameRoom.GameStatus oGameStatus) { }