diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index e7f9424ada2..1847728390d 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -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() diff --git a/code/modules/mob/living/carbon/human/species/station/station.dm b/code/modules/mob/living/carbon/human/species/station/station.dm index aca6e21afd5..cb7c66e1026 100644 --- a/code/modules/mob/living/carbon/human/species/station/station.dm +++ b/code/modules/mob/living/carbon/human/species/station/station.dm @@ -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 \ diff --git a/code/modules/vore/resizing/holder_micro_vr.dm b/code/modules/vore/resizing/holder_micro_vr.dm index 19b07c20dfd..47107ce945e 100644 --- a/code/modules/vore/resizing/holder_micro_vr.dm +++ b/code/modules/vore/resizing/holder_micro_vr.dm @@ -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() diff --git a/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm index 6bb7b1dea88..aacb51ed3e8 100644 --- a/code/modules/vore/resizing/resize_vr.dm +++ b/code/modules/vore/resizing/resize_vr.dm @@ -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)]" diff --git a/icons/mob/items/lefthand_toys.dmi b/icons/mob/items/lefthand_toys.dmi new file mode 100644 index 00000000000..93ec60c66cc Binary files /dev/null and b/icons/mob/items/lefthand_toys.dmi differ diff --git a/icons/mob/items/righthand_toys.dmi b/icons/mob/items/righthand_toys.dmi new file mode 100644 index 00000000000..b1d4b6de707 Binary files /dev/null and b/icons/mob/items/righthand_toys.dmi differ diff --git a/icons/mob/toy_worn.dmi b/icons/mob/toy_worn.dmi new file mode 100644 index 00000000000..b0f701ec6ef Binary files /dev/null and b/icons/mob/toy_worn.dmi differ