From ce768eae26a738e55d76baaec0e596b74055ddc9 Mon Sep 17 00:00:00 2001 From: veganzombeh Date: Sat, 12 Sep 2015 16:14:21 +0100 Subject: [PATCH 1/4] pAIs can no longer force people on help intent to pick them up. Apparently, pAIs could force people to pick them up by dragging themselves onto a person on help intent. This adds an alert which makes it a bit more clear what's happening, and requires the person to agree, similar to the give verb. --- code/modules/mob/living/silicon/pai/pai.dm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 79ead634085..fbe63ccbee8 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -554,11 +554,14 @@ /mob/living/silicon/pai/MouseDrop(atom/over_object) var/mob/living/carbon/H = over_object if(!istype(H) || !Adjacent(H)) return ..() - if(H.a_intent == I_HELP) - get_scooped(H) - //return - else - return ..() + switch(alert(H,"[src] wants you to pick them up. Do it?",,"Yes","No")) + if("Yes") + if(Adjacent(H)) + get_scooped(H) + else + src << "You need to stay in reaching distance to be picked up." + if("No") + src << "[H] decided not to pick you up." /mob/living/silicon/pai/on_forcemove(atom/newloc) if(card) From bb18efcc08660d9ddc403b26f345b99ed1c2e4a2 Mon Sep 17 00:00:00 2001 From: veganzombeh Date: Sat, 12 Sep 2015 16:30:20 +0100 Subject: [PATCH 2/4] Checks the pAI is the mousedropper. --- code/modules/mob/living/silicon/pai/pai.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index fbe63ccbee8..b03e690f6a4 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -553,7 +553,7 @@ /mob/living/silicon/pai/MouseDrop(atom/over_object) var/mob/living/carbon/H = over_object - if(!istype(H) || !Adjacent(H)) return ..() + if(!istype(H) || !Adjacent(H) || usr != src) return ..() switch(alert(H,"[src] wants you to pick them up. Do it?",,"Yes","No")) if("Yes") if(Adjacent(H)) From 21d36362b708b63b0d5b5efaa5bf98cb526c2e17 Mon Sep 17 00:00:00 2001 From: veganzombeh Date: Sat, 12 Sep 2015 17:51:15 +0100 Subject: [PATCH 3/4] Fixes non-pAI mousedrop --- code/modules/mob/living/silicon/pai/pai.dm | 26 +++++++++++++--------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index b03e690f6a4..7ad2b3f9d71 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -552,16 +552,22 @@ return H /mob/living/silicon/pai/MouseDrop(atom/over_object) - var/mob/living/carbon/H = over_object - if(!istype(H) || !Adjacent(H) || usr != src) return ..() - switch(alert(H,"[src] wants you to pick them up. Do it?",,"Yes","No")) - if("Yes") - if(Adjacent(H)) - get_scooped(H) - else - src << "You need to stay in reaching distance to be picked up." - if("No") - src << "[H] decided not to pick you up." + var/mob/living/carbon/H = over_object + if(!istype(H) || !Adjacent(H)) return ..() + if(usr == src) + switch(alert(H, "[src] wants you to pick them up. Do it?",,"Yes","No")) + if("Yes") + if(Adjacent(H)) + get_scooped(H) + else + src << "You need to stay in reaching distance to be picked up." + if("No") + src << "[H] decided not to pick you up." + else + if(Adjacent(H)) + get_scooped(H) + else + return ..() /mob/living/silicon/pai/on_forcemove(atom/newloc) if(card) From 351beaad3f8e8f1f7286e821915fc58da777d211 Mon Sep 17 00:00:00 2001 From: veganzombeh Date: Mon, 14 Sep 2015 21:49:59 +0100 Subject: [PATCH 4/4] Fixes indentation --- code/modules/mob/living/silicon/pai/pai.dm | 32 +++++++++++----------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 7ad2b3f9d71..fed276969f7 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -552,22 +552,22 @@ return H /mob/living/silicon/pai/MouseDrop(atom/over_object) - var/mob/living/carbon/H = over_object - if(!istype(H) || !Adjacent(H)) return ..() - if(usr == src) - switch(alert(H, "[src] wants you to pick them up. Do it?",,"Yes","No")) - if("Yes") - if(Adjacent(H)) - get_scooped(H) - else - src << "You need to stay in reaching distance to be picked up." - if("No") - src << "[H] decided not to pick you up." - else - if(Adjacent(H)) - get_scooped(H) - else - return ..() + var/mob/living/carbon/human/H = over_object //changed to human to avoid stupid issues like xenos holding pAIs. + if(!istype(H) || !Adjacent(H)) return ..() + if(usr == src) + switch(alert(H, "[src] wants you to pick them up. Do it?",,"Yes","No")) + if("Yes") + if(Adjacent(H)) + get_scooped(H) + else + src << "You need to stay in reaching distance to be picked up." + if("No") + src << "[H] decided not to pick you up." + else + if(Adjacent(H)) + get_scooped(H) + else + return ..() /mob/living/silicon/pai/on_forcemove(atom/newloc) if(card)