Skip to content

Commit

Permalink
Merge pull request #405 from Fatherless1Xx/Plswro2k
Browse files Browse the repository at this point in the history
Half-Giant piggyback PR
  • Loading branch information
DerFlammenwerfer authored Jan 23, 2025
2 parents 391a33a + 898ab03 commit e651af3
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 3 deletions.
45 changes: 42 additions & 3 deletions code/modules/mob/living/carbon/human/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -846,11 +846,18 @@

//Target = what was clicked on, User = thing doing the clicking
/mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user)
if(isseelie(target) && !(HAS_TRAIT(src, TRAIT_TINY)) && istype(user.rmb_intent, /datum/rmb_intent/weak))
// Seelies can sit on anyone's shoulders
if(isseelie(target) && !(HAS_TRAIT(src, TRAIT_TINY)))
if(can_piggyback(target))
shoulder_ride(target)
return TRUE

// Anyone can sit on anthromorphbig's shoulders
if(istype(src.dna?.species, /datum/species/anthromorphbig))
if(user == target && can_piggyback(target)) // Make sure the person dragging is the one trying to sit
shoulder_ride(target)
return TRUE

if(user == target)
return FALSE
//normal vore check.
Expand All @@ -875,9 +882,9 @@
/mob/living/carbon/human/proc/shoulder_ride(mob/living/carbon/target)
buckle_mob(target, TRUE, TRUE, FALSE, 0, 0)
visible_message(span_notice("[target] gently sits on [src]'s shoulder."))
//target.set_mob_offsets("shoulder_ride", _x = 5, _y = 10)
if(istype(target.dna?.species, /datum/species/anthromorphbig))
target.pixel_y += 6 // Adjust this value as needed for proper visual alignment

//src is the user that will be carrying, target is the mob to be carried
/mob/living/carbon/human/proc/can_piggyback(mob/living/carbon/target)
return (istype(target) && target.stat == CONSCIOUS)

Expand Down Expand Up @@ -1207,3 +1214,35 @@
/mob/living/carbon/human/proc/has_butt()
RETURN_TYPE(/obj/item/organ/butt)
return getorganslot(ORGAN_SLOT_BUTT)

/mob/living/carbon/human/proc/shoulder_perch()
set name = "Perch on Shoulders"
set category = "IC"
set desc = "Sit on someone's shoulders."

if(stat != CONSCIOUS)
return

if(!istype(dna?.species, /datum/species/anthromorphbig))
to_chat(src, span_warning("You're not the right size to perch on shoulders!"))
return

var/list/possible_targets = list()
for(var/mob/living/carbon/human/H in range(1, src))
if(H != src && !H.buckled && !H.lying)
possible_targets += H

if(!length(possible_targets))
to_chat(src, span_warning("No valid targets to perch on!"))
return

var/mob/living/carbon/human/target = input(src, "Who do you want to perch on?", "Shoulder Perch") as null|anything in possible_targets
if(!target || target.buckled || target.lying || !Adjacent(target))
return

target.visible_message(span_notice("[src] starts climbing onto [target]'s shoulders..."))
if(do_after(src, 20, target))
if(target.buckled || target.lying || !Adjacent(target))
return
target.shoulder_ride(src)

Original file line number Diff line number Diff line change
Expand Up @@ -192,3 +192,10 @@
returned["mcolor3"] = third_color
return returned

/datum/species/anthromorphbig/on_species_gain(mob/living/carbon/C, datum/species/old_species)
. = ..()
C.verbs |= /mob/living/carbon/human/proc/shoulder_perch

/datum/species/anthromorphbig/on_species_loss(mob/living/carbon/C)
. = ..()
C.verbs -= /mob/living/carbon/human/proc/shoulder_perch
7 changes: 7 additions & 0 deletions modular_hearthstone/code/datums/loadout.dm
Original file line number Diff line number Diff line change
Expand Up @@ -342,4 +342,11 @@ GLOBAL_LIST_EMPTY(loadout_items)
name = "Lamptern"
path = /obj/item/flashlight/flare/torch/lantern

/datum/loadout_item/chainkini
name = "chainkini"
path = /obj/item/clothing/suit/roguetown/armor/chainmail/bikini


/datum/loadout_item/bikini
name = "leatherkini"
path = /obj/item/clothing/suit/roguetown/armor/leather/bikini

0 comments on commit e651af3

Please sign in to comment.