diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index dcfcb50fcbd..c09951ba4d4 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -9,6 +9,13 @@ src:Topic(href, href_list) return null +/proc/is_on_same_plane_or_station(var/z1, var/z2) + if(z1 == z2) + return 1 + if((z1 in config.station_levels) && (z2 in config.station_levels)) + return 1 + return 0 + /proc/get_area(O) var/turf/loc = get_turf(O) if(!loc) diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index b9ccee8f360..4f424e03154 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -84,7 +84,6 @@ throw_speed = 4 throw_range = 5 - /obj/item/weapon/cane name = "cane" desc = "A cane used by a true gentlemen. Or a clown." @@ -99,42 +98,44 @@ attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed") /obj/item/weapon/cane/concealed - var/atom/movable/concealed_blade + var/concealed_blade -/obj/item/weapon/cane/concealed/New(var/blade) +/obj/item/weapon/cane/concealed/New() ..() - if(!isturf(blade)) - concealed_blade = blade - else - concealed_blade = new/obj/item/weapon/kitchenknife/concealed(src) - loc = blade + concealed_blade = new/obj/item/weapon/butterfly/switchblade(src) /obj/item/weapon/cane/concealed/attack_self(mob/user) - user.visible_message("[user] has unsheathed a blade from \his [src]!", "You unsheathe the blade from \the [src].") - // Calling drop/put in hands to properly call item drop/pickup procs - user.drop_from_inventory(src) - user.put_in_hands(concealed_blade) - loc = concealed_blade - -/obj/item/weapon/kitchenknife/concealed - name = "cane blade" - desc = "A now less than concealed cane blade." - var/atom/movable/container - -/obj/item/weapon/kitchenknife/concealed/New(var/container) - ..() - if(!isturf(container)) - src.container = container + if(concealed_blade) + user.visible_message("[user] has unsheathed \a [concealed_blade] from \his [src]!", "You unsheathe \the [concealed_blade] from \the [src].") + // Calling drop/put in hands to properly call item drop/pickup procs + playsound(user.loc, 'sound/weapons/flipblade.ogg', 50, 1) + user.drop_from_inventory(src) + user.put_in_hands(concealed_blade) + user.put_in_hands(src) + concealed_blade = null + update_icon() else - container = new/obj/item/weapon/cane/concealed(src) - loc = container + ..() -/obj/item/weapon/kitchenknife/concealed/attack_self(mob/user) - user.visible_message("[user] has sheathed a blade into \his [container]!", "You sheathe the blade into \the [container].") - // Calling drop/put in hands to properly call item drop/pickup procs - user.drop_from_inventory(src) - user.put_in_hands(container) - loc = container +/obj/item/weapon/cane/concealed/attackby(var/obj/item/weapon/butterfly/W, var/mob/user) + if(!src.concealed_blade && istype(W)) + user.visible_message("[user] has sheathed \a [W] into \his [src]!", "You sheathe \the [W] into \the [src].") + user.drop_from_inventory(W) + W.loc = src + src.concealed_blade = W + update_icon() + else + ..() + +/obj/item/weapon/cane/concealed/update_icon() + if(concealed_blade) + name = initial(name) + icon_state = initial(icon_state) + item_state = initial(icon_state) + else + name = "cane shaft" + icon_state = "nullrod" + item_state = "foldcane" /obj/item/weapon/disk name = "disk" diff --git a/code/game/objects/items/devices/spy_bug.dm b/code/game/objects/items/devices/spy_bug.dm index cb8712af9e4..70e3628f67e 100644 --- a/code/game/objects/items/devices/spy_bug.dm +++ b/code/game/objects/items/devices/spy_bug.dm @@ -105,10 +105,10 @@ spawn(0) while(selected_camera && Adjacent(user)) var/turf/T = get_turf(selected_camera) - if(!T || T.z != user.z) + if(!T || !is_on_same_plane_or_station(T.z, user.z) || !selected_camera.can_use()) user.unset_machine() user.reset_view(null) - user << "[selected_camera] out of range." + user << "[selected_camera] unavailable." sleep(90) else user.set_machine(selected_camera) diff --git a/code/game/objects/items/weapons/storage/firstaid.dm b/code/game/objects/items/weapons/storage/firstaid.dm index 39e7bff51ea..e2d45e0fac8 100644 --- a/code/game/objects/items/weapons/storage/firstaid.dm +++ b/code/game/objects/items/weapons/storage/firstaid.dm @@ -84,7 +84,7 @@ ..() if (empty) return new /obj/item/weapon/reagent_containers/pill/dexalin( src ) - new /obj/item/weapon/reagent_containers/pill/( src ) + new /obj/item/weapon/reagent_containers/pill/dexalin( src ) new /obj/item/weapon/reagent_containers/pill/dexalin( src ) new /obj/item/weapon/reagent_containers/pill/dexalin( src ) new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src ) diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index ec5e44cfa00..aa66b26f12b 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -168,7 +168,7 @@ new /obj/item/device/spy_monitor(src) /obj/item/weapon/storage/box/syndie_kit/g9mm - name = "Smooth operator" + name = "\improper Smooth operator" desc = "9mm with silencer kit." /obj/item/weapon/storage/box/syndie_kit/g9mm/New() @@ -177,7 +177,7 @@ new /obj/item/weapon/silencer(src) /obj/item/weapon/storage/box/syndie_kit/cigarette - name = "cigarette kit" + name = "\improper Tricky smokes" desc = "Comes with the following brands of cigarettes, in this order: 2xFlash, 2xSmoke, 1xMindBreaker, 1xTricordrazine. Avoid mixing them up." /obj/item/weapon/storage/box/syndie_kit/cigarette/New() diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index 31b77f83e02..efc73c54368 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 0ec7e7098bb..98a12e5ff1a 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ