[s] Fixes altclick exploits

This commit is contained in:
ShizCalev
2018-02-10 22:06:12 -05:00
committed by CitadelStationBot
parent 7f7bea7468
commit f4685cfe01
60 changed files with 660 additions and 129 deletions
+4 -3
View File
@@ -113,10 +113,11 @@
update_label()
/obj/item/card/id/attack_self(mob/user)
user.visible_message("<span class='notice'>[user] shows you: [icon2html(src, viewers(user))] [src.name].</span>", \
if(Adjacent(user))
user.visible_message("<span class='notice'>[user] shows you: [icon2html(src, viewers(user))] [src.name].</span>", \
"<span class='notice'>You show \the [src.name].</span>")
src.add_fingerprint(user)
return
add_fingerprint(user)
return
/obj/item/card/id/examine(mob/user)
..()
+1 -1
View File
@@ -145,7 +145,7 @@
ui.open()
/obj/item/toy/crayon/spraycan/AltClick(mob/user)
if(user.canUseTopic(src, be_close=TRUE))
if(user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
if(has_cap)
is_capped = !is_capped
to_chat(user, "<span class='notice'>The cap on [src] is now [is_capped ? "on" : "off"].</span>")
@@ -183,7 +183,7 @@
return ..()
/obj/item/device/geiger_counter/AltClick(mob/living/user)
if(!istype(user) || user.incapacitated())
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE))
return ..()
if(!scanning)
to_chat(usr, "<span class='warning'>[src] must be on to reset its radiation level!</span>")
+3 -1
View File
@@ -41,10 +41,12 @@ GLOBAL_LIST_EMPTY(GPS_list)
add_overlay("working")
/obj/item/device/gps/AltClick(mob/user)
if(!user.canUseTopic(src, BE_CLOSE))
return
toggletracking(user)
/obj/item/device/gps/proc/toggletracking(mob/user)
if(!user.canUseTopic(src, be_close=TRUE))
if(!user.canUseTopic(src, BE_CLOSE))
return //user not valid to use gps
if(emped)
to_chat(user, "It's busted!")
+2
View File
@@ -191,6 +191,8 @@
return ..()
/obj/item/extinguisher/AltClick(mob/user)
if(!user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
EmptyExtinguisher(user)
/obj/item/extinguisher/proc/EmptyExtinguisher(var/mob/user)
+1 -1
View File
@@ -135,7 +135,7 @@
toggle_igniter(user)
/obj/item/flamethrower/AltClick(mob/user)
if(ptank && isliving(user) && !user.incapacitated() && Adjacent(user))
if(ptank && isliving(user) && user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
user.put_in_hands(ptank)
ptank = null
to_chat(user, "<span class='notice'>You remove the plasma tank from [src]!</span>")
+2 -2
View File
@@ -70,7 +70,7 @@
update_icon()
/obj/item/pet_carrier/AltClick(mob/living/user)
if(open || !user.canUseTopic(src, be_close=TRUE))
if(open || !user.canUseTopic(src, BE_CLOSE))
return
locked = !locked
to_chat(user, "<span class='notice'>You flip the lock switch [locked ? "down" : "up"].</span>")
@@ -151,7 +151,7 @@
add_overlay("[locked ? "" : "un"]locked")
/obj/item/pet_carrier/MouseDrop(atom/over_atom)
if(isopenturf(over_atom) && usr.Adjacent(over_atom) && open && occupants.len)
if(isopenturf(over_atom) && usr.canUseTopic(src, BE_CLOSE, ismonkey(usr)) && usr.Adjacent(over_atom) && open && occupants.len)
usr.visible_message("<span class='notice'>[usr] unloads [src].</span>", \
"<span class='notice'>You unload [src] onto [over_atom].</span>")
for(var/V in occupants)
+2 -5
View File
@@ -310,10 +310,7 @@
..()
/obj/item/stack/AltClick(mob/living/user)
if(!istype(user) || !user.canUseTopic(src))
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
return
if(!in_range(src, user))
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
if(is_cyborg)
return
@@ -324,7 +321,7 @@
var/min = 0
var/max = get_amount()
var/stackmaterial = round(input(user,"How many sheets do you wish to take out of this stack? (Maximum [max])") as num)
if(stackmaterial == null || stackmaterial <= min || stackmaterial >= get_amount() || !user.canUseTopic(src))
if(stackmaterial == null || stackmaterial <= min || stackmaterial >= get_amount() || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
else
change_stack(user,stackmaterial)
+1 -1
View File
@@ -511,7 +511,7 @@
to_chat(user, "<span class='notice'>Alt-click it to quickly draw the blade.</span>")
/obj/item/storage/belt/sabre/AltClick(mob/user)
if(!ishuman(user) || !user.canUseTopic(src, be_close=TRUE))
if(!iscarbon(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
if(contents.len)
var/obj/item/I = contents[1]
+2 -2
View File
@@ -129,8 +129,8 @@
..()
to_chat(user, "<span class='notice'>Alt-click to extract contents.</span>")
/obj/item/storage/fancy/cigarettes/AltClick(mob/user)
if(user.stat || user.restrained())
/obj/item/storage/fancy/cigarettes/AltClick(mob/living/carbon/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
var/obj/item/clothing/mask/cigarette/W = locate(/obj/item/clothing/mask/cigarette) in contents
if(W && contents.len > 0)
+1 -1
View File
@@ -129,7 +129,7 @@
to_chat(user, "<span class='notice'>Alt-click to [open ? "close":"open"] it.</span>")
/obj/item/storage/lockbox/medal/AltClick(mob/user)
if(user.canUseTopic(src, be_close=TRUE))
if(user.canUseTopic(src, BE_CLOSE))
if(!locked)
open = (open ? FALSE : TRUE)
update_icon()
+1 -1
View File
@@ -856,7 +856,7 @@
set name = "Flip Card"
set category = "Object"
set src in range(1)
if(usr.stat || !ishuman(usr) || !usr.canmove || usr.restrained())
if(!ishuman(usr) || !usr.canUseTopic(src, BE_CLOSE))
return
if(!flipped)
src.flipped = 1
+1 -1
View File
@@ -516,7 +516,7 @@
qdel(src)
/obj/item/twohanded/spear/AltClick(mob/user)
if(user.canUseTopic(src, be_close=TRUE))
if(user.canUseTopic(src, BE_CLOSE))
..()
if(!explosive)
return