diff --git a/NEWS.md b/NEWS.md index 055a32e..d84ae9f 100644 --- a/NEWS.md +++ b/NEWS.md @@ -2,6 +2,7 @@ # tamRgo 0.0.0.9004 * Simplified the output of `get_stats()` and included 'bars' for status values. +* Added graphics for species X, Y and Z for levels 0 (shared), 1, 2 and 3 (#10). # tamRgo 0.0.0.9003 diff --git a/R/draw.R b/R/draw.R index 5abc3dc..7cce2b0 100644 --- a/R/draw.R +++ b/R/draw.R @@ -7,20 +7,36 @@ #' @examples \dontrun{ .get_pet_matrix("X")} #' #' @noRd -.get_pet_matrix <- function(species = c("X", "Y", "Z")) { +.get_pet_matrix <- function(species = c("X", "Y", "Z"), level = 1L:3L) { species <- match.arg(species) - if (species == "X") { - return(species_images[["X"]]) + if (level == 0L) { + return(species_images[["X"]][["level_0"]]) } - if (species == "Y") { - return(species_images[["Y"]]) + if (species == "X" & level == 1L) { + return(species_images[["X"]][["level_1"]]) + } else if (species == "X" & level == 2L) { + return(species_images[["X"]][["level_2"]]) + } else if (species == "X" & level == 3L) { + return(species_images[["X"]][["level_3"]]) } - if (species == "Z") { - return(species_images[["Z"]]) + if (species == "Y" & level == 1L) { + return(species_images[["Y"]][["level_1"]]) + } else if (species == "Y" & level == 2L) { + return(species_images[["Y"]][["level_2"]]) + } else if (species == "Y" & level == 3L) { + return(species_images[["Y"]][["level_3"]]) + } + + if (species == "Z" & level == 1L) { + return(species_images[["Z"]][["level_1"]]) + } else if (species == "Z" & level == 2L) { + return(species_images[["Z"]][["level_2"]]) + } else if (species == "Z" & level == 3L) { + return(species_images[["Z"]][["level_3"]]) } } diff --git a/R/interact.R b/R/interact.R index bd8b7d3..c113d04 100644 --- a/R/interact.R +++ b/R/interact.R @@ -81,7 +81,11 @@ see_pet <- function() { bp <- .check_and_update() - pet_matrix <- .get_pet_matrix(bp$characteristics$species) + pet_matrix <- .get_pet_matrix( + bp$characteristics$species, + bp$experience$level + ) + .draw_pet(pet_matrix) } diff --git a/R/sysdata.rda b/R/sysdata.rda index c85de92..8d9f896 100644 Binary files a/R/sysdata.rda and b/R/sysdata.rda differ diff --git a/data-raw/images.R b/data-raw/images.R index a56f23c..b5672e7 100644 --- a/data-raw/images.R +++ b/data-raw/images.R @@ -1,9 +1,18 @@ +xyz0 <- pixeltrix::click_pixels(7, 7) -xm <- pixeltrix::click_pixels(8, 8) -ym <- pixeltrix::click_pixels(8, 8) -zm <- pixeltrix::click_pixels(8, 8) +x1 <- pixeltrix::click_pixels(8, 8) +x2 <- pixeltrix::click_pixels(10, 10) +x3 <- pixeltrix::click_pixels(12, 12) -matrix_to_sprite <- function(m, states = c("0" = "░", "1" = "█"), preview = TRUE) { +y1 <- pixeltrix::click_pixels(8, 8) +y2 <- pixeltrix::click_pixels(10, 10) +y3 <- pixeltrix::click_pixels(12, 12) + +z1 <- pixeltrix::click_pixels(8, 8) +z2 <- pixeltrix::click_pixels(10, 10) +z3 <- pixeltrix::click_pixels(12, 12) + +matrix_to_sprite <- function(m, states = c("0" = " ", "1" = "█"), preview = TRUE) { mode(m) <- "character" x <- matrix(states[m], nrow(m), ncol(m)) @@ -19,10 +28,24 @@ matrix_to_sprite <- function(m, states = c("0" = "░", "1" = "█"), preview = } -matrix_to_sprite(xm) -> x -matrix_to_sprite(ym) -> y -matrix_to_sprite(zm) -> z +matrix_to_sprite(xyz0) -> xyz0_s + +matrix_to_sprite(x1) -> x1_s +matrix_to_sprite(x2) -> x2_s +matrix_to_sprite(x3) -> x3_s + +matrix_to_sprite(y1) -> y1_s +matrix_to_sprite(y2) -> y2_s +matrix_to_sprite(y3) -> y3_s + +matrix_to_sprite(z1) -> z1_s +matrix_to_sprite(z2) -> z2_s +matrix_to_sprite(z3) -> z3_s -species_images <- list(X = x, Y = y, Z = z) +species_images <- list( + X = list(level_0 = xyz0_s, level_1 = x1_s, level_2 = x2_s, level_3 = x3_s), + Y = list(level_0 = xyz0_s, level_1 = y1_s, level_2 = y2_s, level_3 = y3_s) , + Z = list(level_0 = xyz0_s, level_1 = z1_s, level_2 = z2_s, level_3 = z3_s) +) usethis::use_data(species_images, internal = TRUE, overwrite = TRUE)