From 3ff1fc8bebc9b042d600a58a7efd6405b21dbb76 Mon Sep 17 00:00:00 2001 From: Casey Date: Wed, 8 Dec 2021 13:28:51 -0500 Subject: [PATCH 1/3] You can't eat yourself, charlie brown! --- .../projectiles/guns/energy/bsharpoon_vr.dm | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/code/modules/projectiles/guns/energy/bsharpoon_vr.dm b/code/modules/projectiles/guns/energy/bsharpoon_vr.dm index 07207f9fb0..4adde7b0ef 100644 --- a/code/modules/projectiles/guns/energy/bsharpoon_vr.dm +++ b/code/modules/projectiles/guns/energy/bsharpoon_vr.dm @@ -124,6 +124,41 @@ user.forceMove(pick(trange(24,user))) else user.forceMove(ToTurf) +<<<<<<< HEAD +======= + var/vore_happened = FALSE + if(can_dropnom && living_user.can_be_drop_pred) + var/obj/belly/belly_dest + if(living_user.vore_selected) + belly_dest = living_user.vore_selected + else if(living_user.vore_organs.len) + belly_dest = pick(living_user.vore_organs) + if(belly_dest) + for(var/mob/living/prey in ToTurf) + if(prey == user) //You can't eat yourself, silly! + continue + if(prey.can_be_drop_prey) + prey.forceMove(belly_dest) + vore_happened = TRUE + to_chat(prey, "[living_user] materializes around you, as you end up in their [belly_dest]!") + to_chat(living_user, "You materialize around [prey] as they end up in your [belly_dest]!") + if(can_dropnom && !vore_happened && living_user.can_be_drop_prey) + var/mob/living/pred + for(var/mob/living/potential_pred in ToTurf) + if(potential_pred.can_be_drop_pred) + pred = potential_pred + if(pred) + var/obj/belly/belly_dest + if(pred.vore_selected) + belly_dest = pred.vore_selected + else if(pred.vore_organs.len) + belly_dest = pick(pred.vore_organs) + if(belly_dest) + living_user.forceMove(belly_dest) + to_chat(pred, "[living_user] materializes inside you as they end up in your [belly_dest]!") + to_chat(living_user, "You materialize inside [pred] as you end up in their [belly_dest]!") + +>>>>>>> 21f62265ec... Merge pull request #11991 from Very-Soft/noselfvoar else for(var/obj/O in FromTurf) if(O.anchored) continue From 783c579b368667f75ec6d7f4bac99a5b2b74ef69 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Fri, 10 Dec 2021 01:27:04 -0700 Subject: [PATCH 2/3] powder that makes you say yes --- code/modules/projectiles/guns/energy/bsharpoon_vr.dm | 3 --- 1 file changed, 3 deletions(-) diff --git a/code/modules/projectiles/guns/energy/bsharpoon_vr.dm b/code/modules/projectiles/guns/energy/bsharpoon_vr.dm index 4adde7b0ef..0cb5264f68 100644 --- a/code/modules/projectiles/guns/energy/bsharpoon_vr.dm +++ b/code/modules/projectiles/guns/energy/bsharpoon_vr.dm @@ -124,8 +124,6 @@ user.forceMove(pick(trange(24,user))) else user.forceMove(ToTurf) -<<<<<<< HEAD -======= var/vore_happened = FALSE if(can_dropnom && living_user.can_be_drop_pred) var/obj/belly/belly_dest @@ -158,7 +156,6 @@ to_chat(pred, "[living_user] materializes inside you as they end up in your [belly_dest]!") to_chat(living_user, "You materialize inside [pred] as you end up in their [belly_dest]!") ->>>>>>> 21f62265ec... Merge pull request #11991 from Very-Soft/noselfvoar else for(var/obj/O in FromTurf) if(O.anchored) continue From 5534d7e403d793d320eef4cf28a261fa5e653ba8 Mon Sep 17 00:00:00 2001 From: Nadyr <41974248+Darlantanis@users.noreply.github.com> Date: Sun, 12 Dec 2021 06:16:15 -0500 Subject: [PATCH 3/3] powder that makes you say yes --- .../projectiles/guns/energy/bsharpoon_vr.dm | 53 ++++++++++++++++--- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/code/modules/projectiles/guns/energy/bsharpoon_vr.dm b/code/modules/projectiles/guns/energy/bsharpoon_vr.dm index 0cb5264f68..2dc315c786 100644 --- a/code/modules/projectiles/guns/energy/bsharpoon_vr.dm +++ b/code/modules/projectiles/guns/energy/bsharpoon_vr.dm @@ -18,6 +18,7 @@ var/transforming = 0 var/failure_chance = 15 // This can become negative with part tiers above 3, which helps offset penalties var/obj/item/weapon/stock_parts/scanning_module/scanmod + var/dropnoms_active = TRUE /obj/item/weapon/bluespace_harpoon/Initialize() . = ..() @@ -26,6 +27,8 @@ /obj/item/weapon/bluespace_harpoon/examine(var/mob/user) . = ..() + . += "It is currently in [mode ? "transmitting" : "recieving"] mode." + . += "Spatial rearrangement is [dropnoms_active ? "active" : "inactive"]." if(Adjacent(user)) . += "It has [scanmod ? scanmod : "no scanner module"] installed." @@ -80,7 +83,7 @@ playsound(src, 'sound/weapons/wave.ogg', 60, 1) return var/turf/T = get_turf(A) - if(!T || (T.check_density() && mode == 1)) + if(!T || (T.check_density(ignore_mobs = TRUE) && mode == 1)) to_chat(user,"That's a little too solid to harpoon into!") return var/turf/ownturf = get_turf(src) @@ -118,6 +121,11 @@ for(var/rider in L.buckled_mobs) sendfailchance += 15 + var/mob/living/living_user = user + var/can_dropnom = TRUE + if(!dropnoms_active || !istype(living_user)) + can_dropnom = FALSE + if(mode) if(user in FromTurf) if(prob(sendfailchance)) @@ -133,9 +141,7 @@ belly_dest = pick(living_user.vore_organs) if(belly_dest) for(var/mob/living/prey in ToTurf) - if(prey == user) //You can't eat yourself, silly! - continue - if(prey.can_be_drop_prey) + if(prey != user && prey.can_be_drop_prey) prey.forceMove(belly_dest) vore_happened = TRUE to_chat(prey, "[living_user] materializes around you, as you end up in their [belly_dest]!") @@ -143,7 +149,7 @@ if(can_dropnom && !vore_happened && living_user.can_be_drop_prey) var/mob/living/pred for(var/mob/living/potential_pred in ToTurf) - if(potential_pred.can_be_drop_pred) + if(potential_pred != user && potential_pred.can_be_drop_pred) pred = potential_pred if(pred) var/obj/belly/belly_dest @@ -164,25 +170,58 @@ else O.forceMove(ToTurf) + var/user_vored = FALSE + for(var/mob/living/M in FromTurf) if(prob(recievefailchance)) M.forceMove(pick(trange(24,user))) else M.forceMove(ToTurf) + if(can_dropnom && living_user.can_be_drop_pred && M.can_be_drop_prey) + var/obj/belly/belly_dest + if(living_user.vore_selected) + belly_dest = living_user.vore_selected + else if(living_user.vore_organs.len) + belly_dest = pick(living_user.vore_organs) + if(belly_dest) + M.forceMove(belly_dest) + to_chat(living_user, "[M] materializes inside you as they end up in your [belly_dest]!") + to_chat(M, "You materialize inside [living_user] as you end up in their [belly_dest]!") + else if(can_dropnom && living_user.can_be_drop_prey && M.can_be_drop_pred && !user_vored) + var/obj/belly/belly_dest + if(M.vore_selected) + belly_dest = M.vore_selected + else if(M.vore_organs.len) + belly_dest = pick(M.vore_organs) + if(belly_dest) + living_user.forceMove(belly_dest) + user_vored = TRUE + to_chat(living_user, "[M] materializes around you, as you end up in their [belly_dest]!") + to_chat(M, "You materialize around [living_user] as they end up in your [belly_dest]!") + /obj/item/weapon/bluespace_harpoon/attack_self(mob/living/user as mob) return chande_fire_mode(user) /obj/item/weapon/bluespace_harpoon/verb/chande_fire_mode(mob/user as mob) - set name = "Change fire mode" + set name = "Change Fire Mode" set category = "Object" - set src in oview(1) + set src in range(0) + if(transforming) return mode = !mode transforming = 1 to_chat(user,"You change \the [src]'s mode to [mode ? "transmiting" : "receiving"].") update_icon() +/obj/item/weapon/bluespace_harpoon/verb/chande_dropnom_mode(mob/user as mob) + set name = "Toggle Spatial Rearrangement" + set category = "Object" + set src in range(0) + + dropnoms_active = !dropnoms_active + to_chat(user,"You switch \the [src]'s spatial rearrangement [dropnoms_active ? "on" : "off"]. (Telenoms [dropnoms_active ? "enabled" : "dsiabled"])") + /obj/item/weapon/bluespace_harpoon/update_icon() if(transforming) switch(mode)