Merge remote-tracking branch 'upstream/master' into replicators

This commit is contained in:
SatinIsle
2024-09-27 11:39:35 +01:00
106 changed files with 7881 additions and 991 deletions
@@ -8,7 +8,6 @@
transmutation and energy sharing abilities not unlike they lleill, but considerably more limited. Unlike \
other shapeshifter species, such as proteans or prometheans, Hanner have a typical humanoid set of organs and can not regenerate."
flags = NO_SCAN
color_mult = 1
appearance_flags = HAS_SKIN_COLOR | HAS_EYE_COLOR | HAS_HAIR_COLOR | HAS_UNDERWEAR | HAS_LIPS
spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE
@@ -130,7 +130,7 @@
for(var/mob/living/carbon/human/M in mob_list)
if(M.z != user.z || get_dist(user,M) > 10)
continue
if(istype(M) && M.resleeve_lock && M.ckey != M.resleeve_lock)
if(!M.allow_mimicry)
continue
targets |= M
@@ -210,11 +210,6 @@
if(pred.prey_controlled)
to_chat(prey, "<span class='warning'>\The [pred] is already dominated, and cannot be controlled at this time.</span>")
return
if(ishuman(pred))
var/mob/living/carbon/human/h = pred
if(h.resleeve_lock && ckey != h.resleeve_lock)
to_chat(src, "<span class='warning'>\The [h] cannot be impersonated!</span>")
return
if(tgui_alert(prey, "You are attempting to take over [pred], are you sure? Ensure that their preferences align with this kind of play.", "Take Over Predator",list("No","Yes")) != "Yes")
return
to_chat(prey, "<span class='notice'>You attempt to exert your control over \the [pred]...</span>")
@@ -99,7 +99,7 @@
/mob/living/simple_mob/vore/morph/proc/assume(atom/movable/target)
var/mob/living/carbon/human/humantarget = target
if(istype(humantarget) && humantarget.resleeve_lock && ckey != humantarget.resleeve_lock)
if(istype(humantarget) && !humantarget.allow_mimicry)
to_chat(src, "<span class='warning'>[target] cannot be impersonated!</span>")
return
if(morphed)
@@ -272,12 +272,9 @@
var/mob/living/L = tgui_input_list(src, "Select a mob to take over:", "Take Over Prey", possible_mobs)
if(!L)
return
// Adding a ishuman check here, since silicon mobs don't have a resleeve_lock from what I can tell.
if(ishuman(L))
var/mob/living/carbon/human/M = L
if(M.resleeve_lock && ckey != M.resleeve_lock)
to_chat(src, "<span class='warning'>\The [M] cannot be impersonated!</span>")
return
if(!L.allow_mimicry)
to_chat(src, "<span class='warning'>\The [L] cannot be impersonated!</span>")
return
if(tgui_alert(src, "You selected [L] to attempt to take over. Are you sure?", "Take Over Prey",list("No","Yes")) == "Yes")
log_admin("[key_name_admin(src)] offered [L] to swap bodies as a morph.")
if(tgui_alert(L, "\The [src] has elected to attempt to take over your body and control you. Is this something you will allow to happen?", "Allow Morph To Take Over",list("No","Yes")) == "Yes")
@@ -36,6 +36,7 @@
noisy = client.prefs_vr.noisy
selective_preference = client.prefs_vr.selective_preference
eating_privacy_global = client.prefs_vr.eating_privacy_global
allow_mimicry = client.prefs_vr.allow_mimicry
drop_vore = client.prefs_vr.drop_vore
stumble_vore = client.prefs_vr.stumble_vore