diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 6a6f2bd52e8..8a840ada8e3 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -272,6 +272,12 @@ var/list/uplink_items = list() item = /obj/item/weapon/melee/energy/sword cost = 8 +/datum/uplink_item/dangerous/chainsaw + name = "Chainsaw" + desc = "A high powered chainsaw for cutting up ...you know...." + item = /obj/item/weapon/twohanded/chainsaw + cost = 13 + /datum/uplink_item/dangerous/manhacks name = "Viscerator Delivery Grenade" desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred any non-operatives in the area." diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index 2b9424dd594..7909019481e 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -355,6 +355,59 @@ obj/item/weapon/twohanded/ desc = "A spear brought over from the Kidan homeworld." +///CHAINSAW/// + +/obj/item/weapon/twohanded/chainsaw + icon_override = 'icons/mob/in-hand/swords.dmi' + icon_state = "chainsaw0" + name = "Chainsaw" + desc = "Perfect for felling trees or fellow spaceman." + force = 15 + throwforce = 15 + throw_speed = 1 + throw_range = 5 + w_class = 4.0 // can't fit in backpacks + force_unwielded = 15 //still pretty robust + force_wielded = 50 //you'll gouge their eye out! Or a limb...maybe even their entire body! + wieldsound = 'sound/weapons/chainsawstart.ogg' + hitsound = null + flags = NOSHIELD + origin_tech = "materials=6;syndicate=4" + attack_verb = list("sawed", "cut", "hacked", "carved", "cleaved", "butchered", "felled", "timbered") + sharp = 1 + edge = 1 + no_embed = 1 + + +/obj/item/weapon/twohanded/chainsaw/update_icon() + if(wielded) + icon_state = "chainsaw[wielded]" + else + icon_state = "chainsaw0" + + +/obj/item/weapon/twohanded/chainsaw/attack(mob/target as mob, mob/living/user as mob) + if(wielded) + playsound(loc, 'sound/weapons/chainsaw.ogg', 100, 1, -1) //incredibly loud; you ain't goin' for stealth with this thing. Credit to Lonemonk of Freesound for this sound. + if(isrobot(target)) + ..() + return + if(!isliving(target)) + return + else + target.Weaken(4) + ..() + return + else + playsound(loc, "swing_hit", 50, 1, -1) + return ..() + +/obj/item/weapon/twohanded/chainsaw/IsShield() //Disarming someone with a chainsaw should be difficult. + if(wielded) + return 1 + else + return 0 + // SINGULOHAMMER /obj/item/weapon/twohanded/singularityhammer diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 696775cbad5..3ff64431933 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -218,7 +218,7 @@ emp_act /mob/living/carbon/human/proc/attacked_by(var/obj/item/I, var/mob/living/user, var/def_zone) if(!I || !user) return 0 - if(istype(I, /obj/item/weapon/butch/meatcleaver) && src.stat == DEAD && user.a_intent == "harm") + if((istype(I, /obj/item/weapon/butch/meatcleaver) || istype(I, /obj/item/weapon/twohanded/chainsaw)) && src.stat == DEAD && user.a_intent == "harm") var/obj/item/weapon/reagent_containers/food/snacks/meat/human/newmeat = new /obj/item/weapon/reagent_containers/food/snacks/meat/human(get_turf(src.loc)) newmeat.name = src.real_name + newmeat.name newmeat.subjectname = src.real_name diff --git a/icons/mob/in-hand/swords.dmi b/icons/mob/in-hand/swords.dmi index f7bdd0ae1b0..89d35809a9e 100644 Binary files a/icons/mob/in-hand/swords.dmi and b/icons/mob/in-hand/swords.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index f5a1f53a4a4..f686858b569 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ diff --git a/sound/weapons/chainsaw.ogg b/sound/weapons/chainsaw.ogg new file mode 100644 index 00000000000..abe65004d7a Binary files /dev/null and b/sound/weapons/chainsaw.ogg differ diff --git a/sound/weapons/chainsawstart.ogg b/sound/weapons/chainsawstart.ogg new file mode 100644 index 00000000000..dccaa862d6a Binary files /dev/null and b/sound/weapons/chainsawstart.ogg differ