From 6f5ddea836da0a5d54870cd052d9e71f74ce8a45 Mon Sep 17 00:00:00 2001 From: XDTM Date: Thu, 9 Mar 2017 09:11:20 +0100 Subject: [PATCH] Fixes slimes not being able to latch onto humans + faction tweak (#24759) * tentadel * back to normal * Fixes slimes not being able to latch onto humans + faction tweak * NO * NO * HUMANOIDS ONLY * PUTTING THE PIG IN PIGGYBACK --- code/modules/mob/living/carbon/human/human.dm | 12 ++++++------ .../modules/mob/living/carbon/human/human_defines.dm | 2 +- .../modules/mob/living/simple_animal/slime/powers.dm | 6 +++--- code/modules/mob/living/simple_animal/slime/slime.dm | 2 +- code/modules/mob/mob.dm | 4 ++-- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9106cc0153d..1b2dff48e69 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -898,14 +898,14 @@ .["Toggle Purrbation"] = "?_src_=vars;purrbation=\ref[src]" /mob/living/carbon/human/MouseDrop_T(mob/living/target, mob/living/user) - if((target != pulling) || (grab_state < GRAB_AGGRESSIVE) || (user != target) || !isliving(target) || !isliving(user)) //Get consent first :^) + if((target != pulling) || (grab_state < GRAB_AGGRESSIVE) || (user != target) || !isliving(user) || stat || user.stat)//Get consent first :^) . = ..() return - buckle_mob(target, FALSE, TRUE, TRUE) + buckle_mob(target, TRUE, TRUE) . = ..() -/mob/living/carbon/human/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE, yes = FALSE) - if(!yes) +/mob/living/carbon/human/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE) + if(!force)//humans are only meant to be ridden through piggybacking and special cases return if(!is_type_in_typecache(M, can_ride_typecache)) M.visible_message("[M] really can't seem to mount [src]...") @@ -925,9 +925,9 @@ . = ..(M, force, check_loc) stop_pulling() -/mob/living/carbon/human/unbuckle_mob(mob/living/M) +/mob/living/carbon/human/unbuckle_mob(mob/living/M, force=FALSE) if(iscarbon(M)) if(riding_datum) riding_datum.unequip_buckle_inhands(M) riding_datum.restore_position(M) - . = ..(M) + . = ..(M, force) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 796897c5bcf..edf76b61293 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -50,4 +50,4 @@ var/global/default_martial_art = new/datum/martial_art var/datum/personal_crafting/handcrafting can_buckle = TRUE buckle_lying = FALSE - can_ride_typecache = list(/mob/living/carbon/human) + can_ride_typecache = list(/mob/living/carbon/human, /mob/living/simple_animal/slime) diff --git a/code/modules/mob/living/simple_animal/slime/powers.dm b/code/modules/mob/living/simple_animal/slime/powers.dm index 89fa968e241..a6be39062a5 100644 --- a/code/modules/mob/living/simple_animal/slime/powers.dm +++ b/code/modules/mob/living/simple_animal/slime/powers.dm @@ -78,12 +78,12 @@ /mob/living/simple_animal/slime/proc/Feedon(mob/living/M) M.unbuckle_all_mobs(force=1) //Slimes rip other mobs (eg: shoulder parrots) off (Slimes Vs Slimes is already handled in CanFeedon()) - if(M.buckle_mob(src, force=1)) + if(M.buckle_mob(src, force=TRUE)) layer = M.layer+0.01 //appear above the target mob M.visible_message("[name] has latched onto [M]!", \ "[name] has latched onto [M]!") else - src << "I have failed to latch onto the subject" + src << "I have failed to latch onto the subject!" /mob/living/simple_animal/slime/proc/Feedstop(silent=0, living=1) if(buckled) @@ -96,7 +96,7 @@ visible_message("[src] has let go of [buckled]!", \ "I stopped feeding.") layer = initial(layer) - buckled.unbuckle_mob(src,force=1) + buckled.unbuckle_mob(src,force=TRUE) /mob/living/simple_animal/slime/verb/Evolve() set category = "Slime" diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index f316a4d23a4..f530ba40f2c 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -15,7 +15,7 @@ var/list/slime_colours = list("rainbow", "grey", "purple", "metal", "orange", var/docile = 0 languages_spoken = SLIME | HUMAN languages_understood = SLIME | HUMAN - faction = list("slime") + faction = list("slime","neutral") harm_intent_damage = 5 icon_living = "grey baby slime" diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 7227ea03c07..4523b14b7b4 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -116,7 +116,7 @@ var/next_mob_id = 0 msg = blind_message else continue - + else if(T.lighting_overlay) if(T.lighting_overlay.invisibility <= M.see_invisible && T.is_softly_lit()) //the light object is dark and not invisible to us if(blind_message) @@ -768,7 +768,7 @@ var/next_mob_id = 0 setDir(angle2dir(rotation+dir2angle(dir))) //You can buckle on mobs if you're next to them since most are dense -/mob/buckle_mob(mob/living/M, force = 0) +/mob/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE) if(M.buckled) return 0 var/turf/T = get_turf(src)