diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index a9435849e8d..57a61b98cf5 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -933,10 +933,10 @@ var/list/wall_items = typecacheof(list( /obj/machinery/power/apc, /obj/machinery/alarm, /obj/item/device/radio/intercom, - /obj/structure/extinguisher_cabinet, + /obj/structure/extinguisher_cabinet, /obj/structure/reagent_dispensers/peppertank, - /obj/machinery/status_display, - /obj/machinery/requests_console, + /obj/machinery/status_display, + /obj/machinery/requests_console, /obj/machinery/light_switch, /obj/machinery/newscaster, /obj/machinery/firealarm, @@ -1000,7 +1000,7 @@ var/list/wall_items = typecacheof(list( if(length(temp_col )<2) temp_col = "0[temp_col]" colour += temp_col - return colour + return "#[colour]" @@ -1093,7 +1093,7 @@ var/list/wall_items = typecacheof(list( /proc/stoplag(initial_delay) // If we're initializing, our tick limit might be over 100 (testing config), but stoplag() penalizes procs that go over. // Unfortunately, this penalty slows down init a *lot*. So, we disable it during boot and lobby, when relatively few things should be calling this. - if (!Master || Master.initializing || !Master.round_started) + if (!Master || Master.initializing || !Master.round_started) sleep(world.tick_lag) return 1 @@ -1119,7 +1119,7 @@ var/list/wall_items = typecacheof(list( -#define NOT_FLAG(flag) (!(flag & use_flags)) +#define NOT_FLAG(flag) (!(flag & use_flags)) #define HAS_FLAG(flag) (flag & use_flags) // Checks if user can use this object. Set use_flags to customize what checks are done. diff --git a/code/game/objects/effects/decals/Cleanable/humans.dm b/code/game/objects/effects/decals/Cleanable/humans.dm index 9fbb741672f..1f75b57f735 100644 --- a/code/game/objects/effects/decals/Cleanable/humans.dm +++ b/code/game/objects/effects/decals/Cleanable/humans.dm @@ -58,7 +58,7 @@ dry() /obj/effect/decal/cleanable/blood/update_icon() - if(basecolor == "rainbow") basecolor = "#[get_random_colour(1)]" + if(basecolor == "rainbow") basecolor = get_random_colour(1) color = basecolor /obj/effect/decal/cleanable/blood/Crossed(mob/living/carbon/human/perp) @@ -121,7 +121,7 @@ amount -= taken user << "You get some of \the [src] on your hands." LAZYINITLIST(user.blood_DNA) - + if (blood_DNA) user.blood_DNA |= blood_DNA.Copy() @@ -185,11 +185,11 @@ var/image/giblets = new(base_icon, "[icon_state]_flesh", dir) if(!fleshcolor || fleshcolor == "rainbow") - fleshcolor = "#[get_random_colour(1)]" + fleshcolor = get_random_colour(1) giblets.color = fleshcolor var/icon/blood = new(base_icon,"[icon_state]",dir) - if(basecolor == "rainbow") basecolor = "#[get_random_colour(1)]" + if(basecolor == "rainbow") basecolor = get_random_colour(1) blood.Blend(basecolor,ICON_MULTIPLY) icon = blood diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index a970056bcb8..b910fd4654f 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -338,8 +338,8 @@ set_trait(TRAIT_POTENCY,rand(5,30),200,0) set_trait(TRAIT_PRODUCT_ICON,pick(SSplants.plant_product_sprites)) set_trait(TRAIT_PLANT_ICON,pick(SSplants.plant_sprites)) - set_trait(TRAIT_PLANT_COLOUR,"#[get_random_colour(0,75,190)]") - set_trait(TRAIT_PRODUCT_COLOUR,"#[get_random_colour(0,75,190)]") + set_trait(TRAIT_PLANT_COLOUR,get_random_colour(0,75,190)) + set_trait(TRAIT_PRODUCT_COLOUR,get_random_colour(0,75,190)) update_growth_stages() if(prob(20)) @@ -471,7 +471,7 @@ if(prob(5)) set_trait(TRAIT_BIOLUM,1) - set_trait(TRAIT_BIOLUM_COLOUR,"#[get_random_colour(0,75,190)]") + set_trait(TRAIT_BIOLUM_COLOUR,get_random_colour(0,75,190)) set_trait(TRAIT_ENDURANCE,rand(60,100)) set_trait(TRAIT_YIELD,rand(3,15)) @@ -543,7 +543,7 @@ if(get_trait(TRAIT_BIOLUM)) source_turf.visible_message("\The [display_name] begins to glow!") if(prob(degree*2)) - set_trait(TRAIT_BIOLUM_COLOUR,"#[get_random_colour(0,75,190)]") + set_trait(TRAIT_BIOLUM_COLOUR,get_random_colour(0,75,190)) source_turf.visible_message("\The [display_name]'s glow changes colour!") else source_turf.visible_message("\The [display_name]'s glow dims...") diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index ee083bf2ec3..86ee9c46169 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -367,6 +367,7 @@ var/list/holder_mob_icon_cache = list() name = "diona nymph" desc = "It's a little plant critter." desc_dead = "It used to be a little plant critter." + icon = 'icons/mob/diona.dmi' icon_state = "nymph" icon_state_dead = "nymph_dead" origin_tech = list(TECH_MAGNET = 3, TECH_BIO = 5) diff --git a/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm b/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm index 8b70e47744b..6c2bcbac299 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm @@ -4,34 +4,43 @@ //Diona time variables, these differ slightly between a gestalt and a nymph. All values are times in seconds /mob/living/carbon/alien/diona - var/datum/reagents/vessel - var/list/internal_organs_by_name = list() // so internal organs have less ickiness too max_nutrition = 6000 language = null - var/energy_duration = 144//The time in seconds that this diona can exist in total darkness before its energy runs out - var/dark_consciousness = 144//How long this diona can stay on its feet and keep moving in darkness after energy is gone. - var/dark_survival = 216//How long this diona can survive in darkness after energy is gone, before it dies - var/datum/dionastats/DS mob_size = 4 density = 0 mouth_size = 2//how large of a creature it can swallow at once, and how big of a bite it can take out of larger things eat_types = 0//This is a bitfield which must be initialised in New(). The valid values for it are in devour.dm composition_reagent = "nutriment"//Dionae are plants, so eating them doesn't give animal protein - var/mob/living/carbon/gestalt = null//If set, then this nymph is inside a gestalt name = "diona nymph" voice_name = "diona nymph" adult_form = /mob/living/carbon/human speak_emote = list("chirrups") + icon = 'icons/mob/diona.dmi' icon_state = "nymph" death_msg = "expires with a pitiful chirrup..." universal_understand = 0 universal_speak = 0 holder_type = /obj/item/weapon/holder/diona + maxHealth = 85 + pass_flags = PASSTABLE + + // Decorative head flower. + var/flower_color + var/image/flower_image + var/list/sampled_DNA var/list/language_progress var/obj/item/clothing/head/hat - maxHealth = 85 - pass_flags = PASSTABLE + var/datum/reagents/vessel + var/list/internal_organs_by_name = list() // so internal organs have less ickiness too + var/energy_duration = 144 // The time in seconds that this diona can exist in total darkness before its energy runs out + var/dark_consciousness = 144 // How long this diona can stay on its feet and keep moving in darkness after energy is gone. + var/dark_survival = 216 // How long this diona can survive in darkness after energy is gone, before it dies + var/datum/dionastats/DS + var/mob/living/carbon/gestalt = null // If set, then this nymph is inside a gestalt + +/mob/living/carbon/alien/diona/flowery/Initialize(var/mapload) + . = ..(mapload, 100) /mob/living/carbon/alien/diona/movement_delay() . = ..() @@ -49,8 +58,10 @@ else ..() -/mob/living/carbon/alien/diona/Initialize() - . = ..() +/mob/living/carbon/alien/diona/Initialize(var/mapload, var/flower_chance = 5) + if(prob(flower_chance)) + flower_color = get_random_colour(1) + . = ..(mapload) //species = all_species[] set_species("Diona") setup_dionastats() diff --git a/code/modules/mob/living/carbon/alien/diona/update_icons.dm b/code/modules/mob/living/carbon/alien/diona/update_icons.dm index ee38c573592..73281937eb7 100644 --- a/code/modules/mob/living/carbon/alien/diona/update_icons.dm +++ b/code/modules/mob/living/carbon/alien/diona/update_icons.dm @@ -8,5 +8,13 @@ icon_state = "[initial(icon_state)]" cut_overlays() + + if(flower_color) + add_overlay("flower_back") + if(!flower_image) + flower_image = image(icon = 'icons/mob/diona.dmi', icon_state = "flower_fore") + flower_image.color = flower_color + add_overlay(flower_image) + if(hat) add_overlay(get_hat_icon(hat, 0, -8)) diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi index f9a7273580f..38737c3766e 100644 Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ diff --git a/icons/mob/diona.dmi b/icons/mob/diona.dmi new file mode 100644 index 00000000000..283de9d9205 Binary files /dev/null and b/icons/mob/diona.dmi differ