From 6595b8c38eba3800d0eff821700860ac84c8b174 Mon Sep 17 00:00:00 2001 From: Markolie Date: Fri, 21 Nov 2014 04:31:38 +0100 Subject: [PATCH] Fix cloning/telebaton --- code/game/machinery/computer/cloning.dm | 7 +- .../objects/items/weapons/swords_axes_etc.dm | 68 ++++++++++--------- 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index fe146f96aea..c8ae03e2c26 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -130,8 +130,8 @@ data["records"] = temprecords if(src.menu == 3) - data["activerecord"] = src.active_record if (src.active_record) + data["activerecord"] = "\ref[src.active_record]" var/obj/item/weapon/implant/health/H = null if(src.active_record.implant) H = locate(src.active_record.implant) @@ -267,8 +267,8 @@ else if (href_list["refresh"]) nanomanager.update_uis(src) - else if (href_list["clone"]) - var/datum/dna2/record/C = href_list["clone"] + else if (href_list["clone"]) + var/datum/dna2/record/C = locate(href_list["clone"]) //Look for that player! They better be dead! if(C) //Can't clone without someone to clone. Or a pod. Or if the pod is busy. Or full of gibs. @@ -282,7 +282,6 @@ temp = "Error: The cloning pod is malfunctioning." else if(!config.revival_cloning) temp = "Error: Unable to initiate cloning cycle." - else if(pod1.growclone(C)) temp = "Initiating cloning cycle..." records.Remove(C) diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 2a30c76ed4a..d478496b4e1 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -159,34 +159,31 @@ slot_flags = SLOT_BELT w_class = 2 force = 3 + var/cooldown = 0 var/on = 0 - /obj/item/weapon/melee/telebaton/attack_self(mob/user as mob) on = !on if(on) - user.visible_message("\red With a flick of their wrist, [user] extends their telescopic baton.",\ - "\red You extend the baton.",\ - "You hear an ominous click.") + user << "You extend the baton." icon_state = "telebaton_1" - item_state = "telebaton_1" - w_class = 3 - force = 15//quite robust - attack_verb = list("smacked", "struck", "slapped") + item_state = "nullrod" + w_class = 4 //doesnt fit in backpack when its on for balance + force = 10 //seclite damage + attack_verb = list("smacked", "struck", "cracked", "beaten") else - user.visible_message("\blue [user] collapses their telescopic baton.",\ - "\blue You collapse the baton.",\ - "You hear a click.") + user << "You collapse the baton." icon_state = "telebaton_0" - item_state = "telebaton_0" + item_state = "telebaton_0" //no sprite in other words + slot_flags = SLOT_BELT w_class = 2 - force = 3//not so robust now - attack_verb = list("hit", "punched") + force = 3 //not so robust now + 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) + playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1) add_fingerprint(user) if (!blood_DNA) return if(blood_overlay && (blood_DNA.len >= 1)) //updates blood overlay, if any @@ -203,8 +200,9 @@ /obj/item/weapon/melee/telebaton/attack(mob/target as mob, mob/living/user as mob) if(on) - if ((M_CLUMSY in user.mutations) && prob(50)) - user << "\red You club yourself over the head." + add_fingerprint(user) + if((M_CLUMSY in user.mutations) && prob(50)) + user << "You club yourself over the head." user.Weaken(3 * force) if(ishuman(user)) var/mob/living/carbon/human/H = user @@ -212,28 +210,32 @@ else user.take_organ_damage(2*force) return + if(isrobot(target)) + ..() + return + if(!isliving(target)) + return if (user.a_intent == "harm") if(!..()) return - if(!isrobot(target)) - playsound(src.loc, "swing_hit", 50, 1, -1) - target.Weaken(4) + if(!isrobot(target)) return else - playsound(src.loc, 'sound/weapons/Genhit.ogg', 50, 1, -1) - target.Weaken(2) - target.attack_log += text("\[[time_stamp()]\] Has been attacked with [src.name] by [user.name] ([user.ckey])") - user.attack_log += text("\[[time_stamp()]\] Used the [src.name] to attack [target.name] ([target.ckey])") - log_attack("[user.name] ([user.ckey]) attacked [target.name] ([target.ckey]) with [src.name] (INTENT: [uppertext(user.a_intent)])") - src.add_fingerprint(user) - target.visible_message("\red [target] has been stunned with \the [src] by [user]!") - if(!iscarbon(user)) - target.LAssailant = null - else - target.LAssailant = user + if(cooldown <= 0) + playsound(get_turf(src), 'sound/effects/woodhit.ogg', 75, 1, -1) + target.Weaken(3) + add_logs(user, target, "stunned", object="telescopic baton") + src.add_fingerprint(user) + target.visible_message("[target] has been knocked down with \the [src] by [user]!") + if(!iscarbon(user)) + target.LAssailant = null + else + target.LAssailant = user + cooldown = 1 + spawn(40) + cooldown = 0 return else return ..() - - + /* *Energy Blade */