transformPlayer :: (Monad m) => Int -> (Player -> Player) -> StateT GameState m ()
transformPlayer pID f = do
  state <- get
  let players' = map runAction' (state^.players)
      runAction' player = if player^.playerID == pID
                          then f player
                          else player
  put state {_players = players'}
transformPlayer :: (Monad m) => Int -> (Player -> Player) -> StateT GameState m ()
transformPlayer pID f = do
  state <- get
  let players' = map runAction' (state^.players)
      runAction' player = if player^.playerID == pID
                          then f player
                          else player
  put state {_players = players'}
transformPlayer pID f = do
  state <- get
  let players' = map runAction' (state^.players)
      runAction' player = if player^.playerID == pID
                          then f player
                          else player
  put state {_players = players'}