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