diff --git a/code/modules/mob/living/carbon/human/species/station.dm b/code/modules/mob/living/carbon/human/species/station.dm
index 6746a773ecc..d40f03b5231 100644
--- a/code/modules/mob/living/carbon/human/species/station.dm
+++ b/code/modules/mob/living/carbon/human/species/station.dm
@@ -58,6 +58,7 @@
default_headacc = "Simple"
default_headacc_colour = "#404040"
butt_sprite = "unathi"
+ brute_mod = 1.05
has_organ = list(
"heart" = /obj/item/organ/internal/heart,
@@ -78,6 +79,38 @@
"is twisting their own neck!",
"is holding their breath!")
+ var/datum/action/innate/tail_lash/lash = new()
+
+
+/datum/species/unathi/handle_post_spawn(var/mob/living/carbon/human/H)
+ lash.Grant(H)
+ ..()
+
+/datum/action/innate/tail_lash
+ name = "Tail lash"
+ icon_icon = 'icons/effects/effects.dmi'
+ button_icon_state = "tail"
+
+/datum/action/innate/tail_lash/Activate()
+ var/mob/living/carbon/human/user = owner
+ if(!user.restrained() || !user.buckled)
+ to_chat(user, "You need freedom of movement to tail lash!")
+ return
+ if(user.getStaminaLoss() >= 50)
+ to_chat(user, "Rest before tail lashing again!")
+ return
+ for(var/mob/living/carbon/human/C in orange(1))
+ var/obj/item/organ/external/E = C.get_organ(pick("l_leg", "r_leg", "l_foot", "r_foot", "groin"))
+ if(E)
+ user.changeNext_move(CLICK_CD_MELEE)
+ user.visible_message("[src] smacks [C] in [E] with their tail! ", "You hit [C] in [E] with your tail!")
+ user.adjustStaminaLoss(15)
+ C.apply_damage(5, BRUTE, E)
+ user.spin(20, 1)
+ playsound(user.loc, 'sound/weapons/slash.ogg', 50, 0)
+
+
+
/datum/species/unathi/handle_death(var/mob/living/carbon/human/H)
H.stop_tail_wagging(1)
@@ -163,6 +196,7 @@
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS
bodyflags = HAS_TAIL | TAIL_WAGGING | TAIL_OVERLAPPED | HAS_HEAD_ACCESSORY | HAS_MARKINGS | HAS_SKIN_COLOR
dietflags = DIET_OMNI
+ hunger_drain = 1
taste_sensitivity = TASTE_SENSITIVITY_SHARP
reagent_tag = PROCESS_ORG
flesh_color = "#966464"
@@ -551,11 +585,27 @@
var/list/mob/living/carbon/human/recolor_list = list()
+ var/datum/action/innate/regrow/grow = new()
+
species_abilities = list(
/mob/living/carbon/human/verb/toggle_recolor_verb,
/mob/living/carbon/human/proc/regrow_limbs
)
+/datum/species/slime/handle_post_spawn(var/mob/living/carbon/human/H)
+ grow.Grant(H)
+ ..()
+
+/datum/action/innate/regrow
+ name = "Regrow limbs"
+ icon_icon = 'icons/effects/effects.dmi'
+ button_icon_state = "greenglow"
+
+/datum/action/innate/regrow/Activate()
+ var/mob/living/carbon/human/user = owner
+ user.regrow_limbs()
+
+
/datum/species/slime/handle_life(var/mob/living/carbon/human/H)
//This is allegedly for code "style". Like a plaid sweater?
#define SLIMEPERSON_COLOR_SHIFT_TRIGGER 0.1
@@ -787,7 +837,8 @@
species_traits = list(NO_BREATHE, RADIMMUNE, IS_PLANT, NO_BLOOD, NO_PAIN)
clothing_flags = HAS_SOCKS
- dietflags = 0 //Diona regenerate nutrition in light, no diet necessary
+ default_hair_colour = "#000000"
+ dietflags = 0 //Diona regenerate nutrition in light and water, no diet necessary
taste_sensitivity = TASTE_SENSITIVITY_NO_TASTE
oxy_mod = 0
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index 63a8d5ad78c..d57c46e513c 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -346,12 +346,12 @@
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
if(current_species.name == "Slime People") // whee I am part of the problem
hair_s.Blend("[s_colour]A0", ICON_ADD)
- else
+ else if(hair_style.do_colouration)
hair_s.Blend(h_colour, ICON_ADD)
if(hair_style.secondary_theme)
var/icon/hair_secondary_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_[hair_style.secondary_theme]_s")
- if(!hair_style.no_sec_colour)
+ if(!hair_style.no_sec_colour && hair_style.do_colouration )
hair_secondary_s.Blend(h_sec_colour, ICON_ADD)
hair_s.Blend(hair_secondary_s, ICON_OVERLAY)
@@ -370,12 +370,12 @@
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
if(current_species.name == "Slime People") // whee I am part of the problem
facial_s.Blend("[s_colour]A0", ICON_ADD)
- else
+ else if(facial_hair_style.do_colouration)
facial_s.Blend(f_colour, ICON_ADD)
if(facial_hair_style.secondary_theme)
var/icon/facial_secondary_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_[facial_hair_style.secondary_theme]_s")
- if(!facial_hair_style.no_sec_colour)
+ if(!facial_hair_style.no_sec_colour && facial_hair_style.do_colouration)
facial_secondary_s.Blend(f_sec_colour, ICON_ADD)
facial_s.Blend(facial_secondary_s, ICON_OVERLAY)
diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm
index d070baa3766..83bb2ae1322 100644
--- a/code/modules/mob/new_player/sprite_accessories.dm
+++ b/code/modules/mob/new_player/sprite_accessories.dm
@@ -1352,6 +1352,64 @@
name = "Clipped Vox Razorback"
icon_state = "vox_razor_clipped"
+//DIONA: Sprites by skittles below
+/datum/sprite_accessory/hair/diona
+ species_allowed = list("Diona")
+ glasses_over = 1
+ do_colouration = 0
+
+/datum/sprite_accessory/hair/diona/diona_bracket
+ name = "Bracket"
+ icon_state = "diona_bracket"
+
+/datum/sprite_accessory/hair/diona/diona_brush
+ name = "Brush"
+ icon_state = "diona_brush"
+
+/datum/sprite_accessory/hair/diona/diona_cornflow
+ name = "Corn Flowers"
+ icon_state = "diona_cornflower"
+
+/datum/sprite_accessory/hair/diona/diona_laur
+ name = "Laural"
+ icon_state = "diona_laurel"
+
+/datum/sprite_accessory/hair/diona/diona_leaf
+ name = "Leafy"
+ icon_state = "diona_leafy"
+
+/datum/sprite_accessory/hair/diona/diona_mead
+ name = "Meadow"
+ icon_state = "diona_meadow"
+
+/datum/sprite_accessory/hair/diona/diona_oak
+ name = "Oak"
+ icon_state = "diona_oak"
+
+/datum/sprite_accessory/hair/diona/diona_root
+ name = "Roots"
+ icon_state = "diona_root"
+
+/datum/sprite_accessory/hair/diona/diona_rose
+ name = "Rose"
+ icon_state = "diona_rosey"
+
+/datum/sprite_accessory/hair/diona/diona_spinner
+ name = "Spinners"
+ icon_state = "diona_spinner"
+
+/datum/sprite_accessory/hair/diona/diona_spout
+ name = "Sprouts"
+ icon_state = "diona_sprout"
+
+/datum/sprite_accessory/hair/diona/diona_vine
+ name = "Vines"
+ icon_state = "diona_vine"
+
+/datum/sprite_accessory/hair/diona/diona_wildflow
+ name = "Wildflowers"
+ icon_state = "diona_wildflower"
+
// Apollo-specific
/datum/sprite_accessory/hair/wryn
diff --git a/code/modules/reagents/chemistry/reagents/water.dm b/code/modules/reagents/chemistry/reagents/water.dm
index fe2afae85be..546026a4c40 100644
--- a/code/modules/reagents/chemistry/reagents/water.dm
+++ b/code/modules/reagents/chemistry/reagents/water.dm
@@ -513,4 +513,4 @@
if(istype(O, /obj/item/clothing/shoes/galoshes))
var/t_loc = get_turf(O)
qdel(O)
- new /obj/item/clothing/shoes/galoshes/dry(t_loc)
+ new /obj/item/clothing/shoes/galoshes/dry(t_loc)
\ No newline at end of file
diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi
index 1e7437ec2c6..ee05d5f450e 100644
Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index a5f810730fc..c7314121dce 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ