diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index 4e76b773352..4b531f503c8 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -872,6 +872,30 @@ The _flatIcons list is a cache for generated icon files. del(atom_icon) return text_image +var/global/list/friendly_animal_types = list() + +// Pick a random animal instead of the icon, and use that instead +/proc/getRandomAnimalImage(atom/A) + if(!friendly_animal_types.len) + for(var/T in typesof(/mob/living/simple_animal)) + var/mob/living/simple_animal/SA = T + if(initial(SA.gold_core_spawnable) == 2) + friendly_animal_types += SA + + + var/mob/living/simple_animal/SA = pick(friendly_animal_types) + + var/icon = initial(SA.icon) + var/icon_state = initial(SA.icon_state) + + var/image/final_image = image(icon, icon_state=icon_state, loc = A) + + if(ispath(SA, /mob/living/simple_animal/butterfly)) + final_image.color = rgb(rand(0,255), rand(0,255), rand(0,255)) + + // For debugging + final_image.text = initial(SA.name) + return final_image //Find's the average colour of the icon //By vg's ComicIronic diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm index 09e31dacd2a..2cb75a65e7c 100644 --- a/code/modules/holiday/easter.dm +++ b/code/modules/holiday/easter.dm @@ -38,9 +38,9 @@ name = "\improper rabbit" desc = "The hippiest hop around." icon = 'icons/mob/Easter.dmi' - icon_state = "rabbit" - icon_living = "rabbit" - icon_dead = "rabbit_dead" + icon_state = "rabbit_white" + icon_living = "rabbit_white" + icon_dead = "rabbit_white_dead" speak = list("Hop into Easter!","Come get your eggs!","Prizes for everyone!") speak_emote = list("sniffles","twitches") emote_hear = list("hops.") @@ -56,13 +56,13 @@ /mob/living/simple_animal/chicken/rabbit/space icon_prefix = "s_rabbit" - icon_state = "s_rabbit" - icon_living = "s_rabbit" - icon_dead = "s_rabbit_dead" + icon_state = "s_rabbit_white" + icon_living = "s_rabbit_white" + icon_dead = "s_rabbit_white_dead" atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 maxbodytemp = 1500 - unsuitable_atmos_damage = 0 //This damage is taken when atmos doesn't fit all the requirements above + unsuitable_atmos_damage = 0 //Easter Baskets /obj/item/weapon/storage/bag/easterbasket diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 589b69e52cb..00ecdd0ff92 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -824,6 +824,10 @@ staticOverlay.override = 1 staticOverlays["letter"] = staticOverlay + staticOverlay = getRandomAnimalImage(src) + staticOverlay.override = 1 + staticOverlays["animal"] = staticOverlay + /mob/living/carbon/human/cuff_resist(obj/item/I) if(dna && dna.check_mutation(HULK)) say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index de6de0bd39b..64351823b7c 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -41,7 +41,7 @@ Sorry Giacom. Please don't be mad :( /mob/living/proc/generateStaticOverlay() - staticOverlays.Add(list("static", "blank", "letter")) + staticOverlays.Add(list("static", "blank", "letter", "animal")) var/image/staticOverlay = image(getStaticIcon(new/icon(icon,icon_state)), loc = src) staticOverlay.override = 1 staticOverlays["static"] = staticOverlay @@ -54,6 +54,10 @@ Sorry Giacom. Please don't be mad :( staticOverlay.override = 1 staticOverlays["letter"] = staticOverlay + staticOverlay = getRandomAnimalImage(src) + staticOverlay.override = 1 + staticOverlays["animal"] = staticOverlay + //Generic Bump(). Override MobBump() and ObjBump() instead of this. /mob/living/Bump(atom/A, yes) diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index ef1fa6cea17..4d6632dec56 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -43,7 +43,7 @@ damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 0, CLONE = 0, STAMINA = 0, OXY = 0) staticOverlays = list() var/staticChoice = "static" - var/list/staticChoices = list("static", "blank", "letter") + var/list/staticChoices = list("static", "blank", "letter", "animal") var/picked = FALSE //Have we picked our visual appearence (+ colour if applicable) var/list/drone_overlays[DRONE_TOTAL_LAYERS] var/laws = \ @@ -83,6 +83,9 @@ alert_drones(DRONE_NET_CONNECT) + var/datum/action/generic/drone/select_filter/SF = new(src) + SF.Grant(src) + /mob/living/simple_animal/drone/Destroy() qdel(access_card) //Otherwise it ends up on the floor! diff --git a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm index de35e25ef73..f37da30e127 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/extra_drone_types.dm @@ -51,6 +51,7 @@ default_hatmask = /obj/item/clothing/head/chameleon/drone /mob/living/simple_animal/drone/snowflake/New() + ..() desc += " This drone appears to have a complex holoprojector built on its 'head'." /obj/item/drone_shell/syndrone diff --git a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm index a68dcf7516c..cc9b4cb9f84 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/interaction.dm @@ -179,3 +179,9 @@ icon_state = icon_dead else icon_state = icon_living + +/datum/action/generic/drone/select_filter + name = "Select Vision Filter" + button_icon_state = "drone_vision" + procname = /mob/living/simple_animal/drone/verb/toggle_statics + diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 2b3760b2dcc..6937b78520c 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -187,9 +187,9 @@ var/global/chicken_count = 0 /mob/living/simple_animal/chicken name = "\improper chicken" desc = "Hopefully the eggs are good this season." - icon_state = "chicken" - icon_living = "chicken" - icon_dead = "chicken_dead" + icon_state = "chicken_brown" + icon_living = "chicken_brown" + icon_dead = "chicken_brown_dead" speak = list("Cluck!","BWAAAAARK BWAK BWAK BWAK!","Bwaak bwak.") speak_emote = list("clucks","croons") emote_hear = list("clucks.") diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index 7792eeaab82..7dee0928ecb 100644 Binary files a/icons/mob/actions.dmi and b/icons/mob/actions.dmi differ