From 027028b3142eddeb044bda8143e83518a992a629 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Wed, 25 Mar 2020 13:37:44 -0700 Subject: [PATCH] Repaths collapsible white canes to not anger beepsky --- code/defines/obj/weapon.dm | 136 ------------------ code/game/objects/items/weapons/canes.dm | 124 ++++++++++++++++ .../loadout/loadout_general.dm | 4 +- vorestation.dme | 4 + 4 files changed, 130 insertions(+), 138 deletions(-) create mode 100644 code/game/objects/items/weapons/canes.dm diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 622051ba6c..4521ac08c8 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -66,7 +66,6 @@ attack_verb = list("HONKED") var/spam_flag = 0 - /obj/item/weapon/c_tube name = "cardboard tube" desc = "A tube... of cardboard." @@ -77,141 +76,6 @@ throw_speed = 4 throw_range = 5 -/obj/item/weapon/cane - name = "cane" - desc = "A cane used by a true gentleman." - icon = 'icons/obj/weapons.dmi' - icon_state = "cane" - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi', - ) - force = 5.0 - throwforce = 7.0 - w_class = ITEMSIZE_NORMAL - matter = list(DEFAULT_WALL_MATERIAL = 50) - attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed") - -/obj/item/weapon/cane/concealed - var/concealed_blade - -/obj/item/weapon/cane/concealed/New() - ..() - var/obj/item/weapon/material/butterfly/switchblade/temp_blade = new(src) - concealed_blade = temp_blade - temp_blade.attack_self() - -/obj/item/weapon/cane/concealed/attack_self(var/mob/user) - var/datum/gender/T = gender_datums[user.get_visible_gender()] - if(concealed_blade) - user.visible_message("[user] has unsheathed \a [concealed_blade] from [T.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/holster/sheathout.ogg', 50, 1) - user.drop_from_inventory(src) - user.put_in_hands(concealed_blade) - user.put_in_hands(src) - user.update_inv_l_hand(0) - user.update_inv_r_hand() - concealed_blade = null - else - ..() - -/obj/item/weapon/cane/concealed/attackby(var/obj/item/weapon/material/butterfly/W, var/mob/user) - if(!src.concealed_blade && istype(W)) - var/datum/gender/T = gender_datums[user.get_visible_gender()] - user.visible_message("[user] has sheathed \a [W] into [T.his] [src]!", "You sheathe \the [W] into \the [src].") - playsound(user.loc, 'sound/weapons/holster/sheathin.ogg', 50, 1) - 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/cane/whitecane - name = "white cane" - desc = "A white cane. They are commonly used by the blind or visually impaired as a mobility tool or as a courtesy to others." - icon = 'icons/obj/weapons.dmi' - icon_state = "whitecane" - -/obj/item/weapon/cane/whitecane/attack(mob/M as mob, mob/user as mob) - if(user.a_intent == I_HELP) - user.visible_message("\The [user] has lightly tapped [M] on the ankle with their white cane!") - return - else - ..() - -/obj/item/weapon/cane/crutch - name ="crutch" - desc = "A long stick with a crosspiece at the top, used to help with walking." - icon_state = "crutch" - item_state = "crutch" - -//Code for Telescopic White Cane writen by Gozulio - -/obj/item/weapon/melee/collapsable_whitecane - name = "telescopic white cane" - desc = "A telescoping white cane. They are commonly used by the blind or visually impaired as a mobility tool or as a courtesy to others." - icon = 'icons/obj/weapons.dmi' - icon_state = "whitecane1in" - item_icons = list( - slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi', - slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi', - ) - slot_flags = SLOT_BELT - w_class = ITEMSIZE_SMALL - force = 3 - var/on = 0 - -/obj/item/weapon/melee/collapsable_whitecane/attack_self(mob/user as mob) - on = !on - if(on) - user.visible_message("\The [user] extends the white cane.",\ - "You extend the white cane.",\ - "You hear an ominous click.") - icon_state = "whitecane1out" - item_state_slots = list(slot_r_hand_str = "whitecane", slot_l_hand_str = "whitecane") - w_class = ITEMSIZE_NORMAL - force = 5 - attack_verb = list("smacked", "struck", "cracked", "beaten") - else - user.visible_message("\The [user] collapses the white cane.",\ - "You collapse the white cane.",\ - "You hear a click.") - icon_state = "whitecane1in" - item_state_slots = list(slot_r_hand_str = null, slot_l_hand_str = null) - w_class = ITEMSIZE_SMALL - force = 3 - attack_verb = list("hit", "poked") - - if(istype(user,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = user - H.update_inv_l_hand() - H.update_inv_r_hand() - - playsound(src.loc, 'sound/weapons/empty.ogg', 50, 1) - add_fingerprint(user) - - return - -/obj/item/weapon/melee/collapsable_whitecane/attack(mob/M as mob, mob/user as mob) - if(user.a_intent == I_HELP) - user.visible_message("\The [user] has lightly tapped [M] on the ankle with their white cane!") - return - else - ..() - - /obj/item/weapon/disk name = "disk" icon = 'icons/obj/discs_vr.dmi' //VOREStation Edit diff --git a/code/game/objects/items/weapons/canes.dm b/code/game/objects/items/weapons/canes.dm new file mode 100644 index 0000000000..f7688fb2d1 --- /dev/null +++ b/code/game/objects/items/weapons/canes.dm @@ -0,0 +1,124 @@ +/obj/item/weapon/cane + name = "cane" + desc = "A cane used by a true gentleman." + icon = 'icons/obj/weapons.dmi' + icon_state = "cane" + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi', + ) + force = 5.0 + throwforce = 7.0 + w_class = ITEMSIZE_NORMAL + matter = list(DEFAULT_WALL_MATERIAL = 50) + attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed") + +/obj/item/weapon/cane/crutch + name ="crutch" + desc = "A long stick with a crosspiece at the top, used to help with walking." + icon_state = "crutch" + item_state = "crutch" + +/obj/item/weapon/cane/concealed + var/concealed_blade + +/obj/item/weapon/cane/concealed/New() + ..() + var/obj/item/weapon/material/butterfly/switchblade/temp_blade = new(src) + concealed_blade = temp_blade + temp_blade.attack_self() + +/obj/item/weapon/cane/concealed/attack_self(var/mob/user) + var/datum/gender/T = gender_datums[user.get_visible_gender()] + if(concealed_blade) + user.visible_message("[user] has unsheathed \a [concealed_blade] from [T.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/holster/sheathout.ogg', 50, 1) + user.drop_from_inventory(src) + user.put_in_hands(concealed_blade) + user.put_in_hands(src) + user.update_inv_l_hand(0) + user.update_inv_r_hand() + concealed_blade = null + else + ..() + +/obj/item/weapon/cane/concealed/attackby(var/obj/item/weapon/material/butterfly/W, var/mob/user) + if(!src.concealed_blade && istype(W)) + var/datum/gender/T = gender_datums[user.get_visible_gender()] + user.visible_message("[user] has sheathed \a [W] into [T.his] [src]!", "You sheathe \the [W] into \the [src].") + playsound(user.loc, 'sound/weapons/holster/sheathin.ogg', 50, 1) + 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/cane/white + name = "white cane" + desc = "A white cane. They are commonly used by the blind or visually impaired as a mobility tool or as a courtesy to others." + icon_state = "whitecane" + +/obj/item/weapon/cane/white/attack(mob/M as mob, mob/user as mob) + if(user.a_intent == I_HELP) + user.visible_message("\The [user] has lightly tapped [M] on the ankle with their white cane!") + return TRUE + else + . = ..() + + +//Code for Telescopic White Cane writen by Gozulio + +/obj/item/weapon/cane/white/collapsible + name = "telescopic white cane" + desc = "A telescopic white cane. They are commonly used by the blind or visually impaired as a mobility tool or as a courtesy to others." + icon_state = "whitecane1in" + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi', + ) + slot_flags = SLOT_BELT + w_class = ITEMSIZE_SMALL + force = 3 + var/on = 0 + +/obj/item/weapon/cane/white/collapsible/attack_self(mob/user as mob) + on = !on + if(on) + user.visible_message("\The [user] extends the white cane.",\ + "You extend the white cane.",\ + "You hear an ominous click.") + icon_state = "whitecane1out" + item_state_slots = list(slot_r_hand_str = "whitecane", slot_l_hand_str = "whitecane") + w_class = ITEMSIZE_NORMAL + force = 5 + attack_verb = list("smacked", "struck", "cracked", "beaten") + else + user.visible_message("\The [user] collapses the white cane.",\ + "You collapse the white cane.",\ + "You hear a click.") + icon_state = "whitecane1in" + item_state_slots = list(slot_r_hand_str = null, slot_l_hand_str = null) + w_class = ITEMSIZE_SMALL + force = 3 + attack_verb = list("hit", "poked", "prodded") + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + + playsound(src.loc, 'sound/weapons/empty.ogg', 50, 1) + add_fingerprint(user) + return TRUE \ No newline at end of file diff --git a/code/modules/client/preference_setup/loadout/loadout_general.dm b/code/modules/client/preference_setup/loadout/loadout_general.dm index 5fd43d268a..121378723f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_general.dm +++ b/code/modules/client/preference_setup/loadout/loadout_general.dm @@ -4,11 +4,11 @@ /datum/gear/cane/white display_name = "white cane" - path = /obj/item/weapon/cane/whitecane + path = /obj/item/weapon/cane/white /datum/gear/cane/white2 display_name = "telescopic white cane" - path = /obj/item/weapon/melee/collapsable_whitecane + path = /obj/item/weapon/cane/white/collapsible /datum/gear/crutch display_name = "crutch" diff --git a/vorestation.dme b/vorestation.dme index d142e7b532..9c806d9d89 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1145,7 +1145,11 @@ #include "code\game\objects\items\weapons\autopsy.dm" #include "code\game\objects\items\weapons\bones.dm" #include "code\game\objects\items\weapons\candle.dm" +<<<<<<< HEAD:vorestation.dme #include "code\game\objects\items\weapons\cards_ids_vr.dm" +======= +#include "code\game\objects\items\weapons\canes.dm" +>>>>>>> 728bb26... Repaths collapsible white canes to not anger beepsky (#6896):polaris.dme #include "code\game\objects\items\weapons\cigs_lighters.dm" #include "code\game\objects\items\weapons\clown_items.dm" #include "code\game\objects\items\weapons\cosmetics.dm"