R/getMobStats.R

#' Get per-mob stats
#' 
#' Extract common mob names from a list of mob stats. Uses \code{strings.entities} for 
#' substitutions of some mob names.
#' @keywords entities
#' @param entities The entities dataset from which mob names should be extracted
#' @param mobData Dataset of mob metadata, defaults to \link[wurstmineR]{strings.mobs}
#' @return Vector of mob names, adjusted for readability
#' @export
#' @examples
#' \dontrun{
#' entities <- stats2df(fromJSON("http://api.wurstmineberg.de/server/playerstats/general.json"))
#' getMobStats(entities)
#' }
getMobStats <- function(entities = entities, mobData = NULL){
  if (is.null(mobData)){
    mobData <- wurstmineR::strings.mobs
  }
  entities.only           <- entities[names(entities) != "player"]
  mobStats                <- data.frame(stat = names(entities.only), stringsAsFactors = F)
  mobStats$action         <- character(nrow(mobStats))
  mobStats$action[grep("killEntity",      mobStats$stat)] <- "killed"
  mobStats$action[grep("entityKilledBy.", mobStats$stat)] <- "killed by"
  mobStats$mob            <- extractMobNames(mobStats$stat, strings.mobs)
  mobStats$total          <- as.numeric(plyr::colwise(sum)(entities.only))
  mobStats$playerMax      <- as.numeric(plyr::colwise(max)(entities.only))
  mobStats$leadingPlayers <- getLeadingPlayers(mobStats, entities)
  return(mobStats)
}
jemus42/wurstmineR documentation built on May 19, 2019, 4:03 a.m.