Various species related fixes (#18600)

* Gives High Zorren the proper species sound

* Fennec too

* Mouse too

* Vulp Sounds

* Fixes tesh picking up
This commit is contained in:
Cameron Lennox
2025-10-14 10:34:48 -04:00
committed by GitHub
parent c4bfe2ef3f
commit 85926d166e
7 changed files with 54 additions and 16 deletions
+1 -5
View File
@@ -364,6 +364,7 @@ var/list/holder_mob_icon_cache = list()
if(grabber.incapacitated()) return
var/obj/item/holder/H = new holder_type(get_turf(src), src)
H.sync(src)
grabber.put_in_hands(H)
if(self_grab)
@@ -377,11 +378,6 @@ var/list/holder_mob_icon_cache = list()
add_attack_logs(grabber, H.held_mob, "Scooped up", FALSE) // Not important enough to notify admins, but still helpful.
return H
/obj/item/holder/human
icon = 'icons/mob/holder_complex.dmi'
var/list/generate_for_slots = list(slot_l_hand_str, slot_r_hand_str, slot_back_str)
slot_flags = SLOT_BACK
/obj/item/holder/proc/sync(var/mob/living/M)
dir = 2
overlays.Cut()
@@ -897,6 +897,8 @@
min_age = 20
max_age = 80
species_sounds = "Vulpine"
blurb = "The fennec-like, blue-blooded Zorren are native to Virgo 4/Menhir and are descendants of a precursor species \
that is thought to be responsible for the near-collapse of the biosphere of the planet. \
With societies organised around hierarchal caste systems (such as the Royal Zorren) or freedom and strength (such as the Free Tribe Zorren), \
@@ -960,6 +962,11 @@
inherent_verbs = list(/mob/living/carbon/human/proc/lick_wounds,
/mob/living/carbon/human/proc/tie_hair)
pain_verb_1p = list("yelp", "growl")
pain_verb_3p = list("yelps", "growls")
species_sounds = "Canine"
wikilink="https://wiki.vore-station.net/Backstory#Vulpkanin"
catalogue_data = list(/datum/category_item/catalogue/fauna/vulpkanin)
@@ -1126,7 +1133,7 @@
burn_mod = 1.35
mob_size = MOB_MEDIUM
pass_flags = PASSTABLE
holder_type = /obj/item/holder/human
holder_type = /obj/item/holder/micro
// short_sighted = 1
has_vibration_sense = TRUE
blood_volume = 400
@@ -1403,6 +1410,8 @@
min_age = 18
max_age = 80
species_sounds = "Vulpine"
//primitive_form = "" //We don't have fennec-monkey sprites.
spawn_flags = SPECIES_IS_RESTRICTED
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
@@ -1473,6 +1482,8 @@
min_age = 18
max_age = 80
species_sounds = "Mouse"
blurb = "The Altevian are a species of tall, rodent humanoids that are akin to rats for their features. \
The Altevian, unlike most species, do not have a home planet, nor system, adopting a fully nomadic lifestyle \
for their survival across the stars. Instead, they have opted to live in massive super capital-class colony-ships \
+32 -1
View File
@@ -5,11 +5,42 @@
desc = "Another crewmember, small enough to fit in your hand."
icon_state = "micro"
icon_override = 'icons/inventory/head/mob.dmi'
slot_flags = SLOT_FEET | SLOT_HEAD | SLOT_ID | SLOT_HOLSTER
slot_flags = SLOT_FEET | SLOT_HEAD | SLOT_ID | SLOT_HOLSTER | SLOT_BACK
w_class = ITEMSIZE_SMALL
item_icons = null // No in-hand sprites (for now, anyway, we could totally add some)
pixel_y = 0 // Override value from parent.
/obj/item/holder/micro/Initialize(mapload, mob/held)
. = ..()
var/mob/living/carbon/human/H = held_mob
if(istype(H) && H.species.get_bodytype() == SPECIES_TESHARI)
item_icons = list(
slot_l_hand_str = 'icons/mob/items/lefthand_toys.dmi',
slot_r_hand_str = 'icons/mob/items/righthand_toys.dmi',
slot_back_str = 'icons/mob/toy_worn.dmi',
slot_head_str = 'icons/mob/toy_worn.dmi')
// Leaving the following two set makes the sprite not visible
icon_override = null
sprite_sheets = null
icon_state = "teshariplushie_white"
item_state = "teshariplushie_white"
// Add back slot
slot_flags = SLOT_FEET | SLOT_HEAD | SLOT_ID | SLOT_BACK
/obj/item/holder/micro/make_worn_icon(var/body_type,var/slot_name,var/inhands,var/default_icon,var/default_layer,var/icon/clip_mask = null)
var/mob/living/carbon/human/H = held_mob
// Only proceed if dealing with a tesh (or something shaped like a tesh)
if(istype(H) && H.species.get_bodytype() == SPECIES_TESHARI)
var/colortemp = color //save original color var to a temp var
//convert numerical RGB to Hex #000000 format - is this necessary?
//then 'inject' changed color (from skin color) into original proc call
color = addtext("#", num2hex(H.r_skin, 2), num2hex(H.g_skin, 2), num2hex(H.b_skin, 2))
. = ..()
color = colortemp //reset color var to it's old value after original proc call before proceeding - otherwise we change hand-slot icon color too!
else
. = ..()
/obj/item/holder/examine(mob/user)
SHOULD_CALL_PARENT(FALSE)
. = list()
+9 -9
View File
@@ -190,33 +190,33 @@
*/
/mob/living/proc/attempt_to_scoop(mob/living/M, mob/living/G, ignore_size = FALSE) //second one is for the Grabber, only exists for animals to self-grab
if(src == M)
return 0
return FALSE
if(!(pickup_pref && M.pickup_pref && M.pickup_active))
return 0
return FALSE
if(!(M.a_intent == I_HELP))
return 0
return FALSE
var/size_diff = M.get_effective_size(FALSE) - get_effective_size(TRUE)
if(!holder_default && holder_type)
holder_default = holder_type
if(!istype(M))
return 0
return FALSE
if(isanimal(M))
var/mob/living/simple_mob/SA = M
if(!SA.has_hands)
return 0
return FALSE
if(mob_size < MOB_SMALL && src == M)
return 0
return FALSE
if(size_diff >= 0.50 || mob_size < MOB_SMALL || size_diff >= get_effective_size() || ignore_size)
if(buckled)
to_chat(src,span_notice("You have to unbuckle \the [src] before you pick them up."))
return 0
return FALSE
holder_type = /obj/item/holder/micro
var/obj/item/holder/m_holder = get_scooped(M, G)
holder_type = holder_default
if (m_holder)
return 1
return TRUE
else
return 0; // Unable to scoop, let other code run
return FALSE; // Unable to scoop, let other code run
#define STEP_TEXT_OWNER(x) "[replacetext(x,"%prey",tmob)]"
#define STEP_TEXT_PREY(x) "[replacetext(x,"%owner",src)]"