From eec01aa8651cff411cb5ae2975cfd59a284a8664 Mon Sep 17 00:00:00 2001 From: crazyclonetheninja Date: Mon, 17 Jan 2011 04:13:31 +0000 Subject: [PATCH] All robots, including cyborgs, can now be named! Simply use a pen on them during any step where there's an assembly involved. Note that cyborg naming is subject to removal if people abuse it. Knock now unbolts doors as well as opens them. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@880 316c924e-a436-60f5-8080-3fe189b3f50e --- code/datums/spells/knock.dm | 1 + code/game/machinery/bots/cleanbot.dm | 34 ++++++++---- code/game/machinery/bots/floorbot.dm | 72 ++++++++++++++++---------- code/game/objects/items/robot_parts.dm | 15 +++++- 4 files changed, 83 insertions(+), 39 deletions(-) diff --git a/code/datums/spells/knock.dm b/code/datums/spells/knock.dm index 3da2e02f254..6c88667470a 100644 --- a/code/datums/spells/knock.dm +++ b/code/datums/spells/knock.dm @@ -19,5 +19,6 @@ for(var/obj/machinery/door/G in oview(usr,range)) spawn(1) + G:locked = 0 G.open() return \ No newline at end of file diff --git a/code/game/machinery/bots/cleanbot.dm b/code/game/machinery/bots/cleanbot.dm index 8b150b8b5c9..2ddb9e985a5 100644 --- a/code/game/machinery/bots/cleanbot.dm +++ b/code/game/machinery/bots/cleanbot.dm @@ -10,6 +10,7 @@ throw_range = 5 w_class = 3.0 flags = TABLEPASS + var/created_name = "Cleanbot" //Cleanbot @@ -210,17 +211,28 @@ text("[src.oddbutton ? "Yes" : "No" src.anchored = 0 src.target = null -/obj/item/weapon/bucket_sensor/attackby(var/obj/item/robot_parts/P, mob/user as mob) - if(!istype(P, /obj/item/robot_parts/l_arm) && !istype(P, /obj/item/robot_parts/r_arm)) - return - var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot - if(user.r_hand == src || user.l_hand == src) - A.loc = user.loc - else - A.loc = src.loc - user << "You add the robot arm to the bucket and sensor assembly! Beep boop!" - del(P) - del(src) +/obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob) + if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm)) + var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot + if(user.r_hand == src || user.l_hand == src) + A.loc = user.loc + else + A.loc = src.loc + A.name = src.created_name + user << "You add the robot arm to the bucket and sensor assembly! Beep boop!" + del(W) + del(src) + + else if (istype(W, /obj/item/weapon/pen)) + var/t = input(user, "Enter new robot name", src.name, src.created_name) as text + t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN) + if (!t) + return + if (!in_range(src, usr) && src.loc != usr) + return + + src.created_name = t + diff --git a/code/game/machinery/bots/floorbot.dm b/code/game/machinery/bots/floorbot.dm index e67805f0f6e..ae279596d10 100644 --- a/code/game/machinery/bots/floorbot.dm +++ b/code/game/machinery/bots/floorbot.dm @@ -10,6 +10,7 @@ throw_range = 5 w_class = 3.0 flags = TABLEPASS + var/created_name = "Floorbot" /obj/item/weapon/toolbox_tiles_sensor desc = "It's a toolbox with tiles sticking out the top and a sensor attached" @@ -22,6 +23,7 @@ throw_range = 5 w_class = 3.0 flags = TABLEPASS + var/created_name = "Floorbot" //Floorbot /obj/machinery/bot/floorbot @@ -349,30 +351,48 @@ del(T) del(src) -/obj/item/weapon/toolbox_tiles/attackby(var/obj/item/device/prox_sensor/D, mob/user as mob) - if(!istype(D, /obj/item/device/prox_sensor)) - return - var/obj/item/weapon/toolbox_tiles_sensor/B = new /obj/item/weapon/toolbox_tiles_sensor - B.loc = user - if (user.r_hand == D) - user.u_equip(D) - user.r_hand = B - else - user.u_equip(D) - user.l_hand = B - B.layer = 20 - user << "You add the sensor to the toolbox and tiles!" - del(D) - del(src) +/obj/item/weapon/toolbox_tiles/attackby(var/obj/item/W, mob/user as mob) + if(istype(W, /obj/item/device/prox_sensor)) + var/obj/item/weapon/toolbox_tiles_sensor/B = new /obj/item/weapon/toolbox_tiles_sensor + B.loc = user + if (user.r_hand == W) + user.u_equip(W) + user.r_hand = B + else + user.u_equip(W) + user.l_hand = B + B.created_name = src.created_name + B.layer = 20 + user << "You add the sensor to the toolbox and tiles!" + del(W) + del(src) + else if (istype(W, /obj/item/weapon/pen)) + var/t = input(user, "Enter new robot name", src.name, src.created_name) as text + t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN) + if (!t) + return + if (!in_range(src, usr) && src.loc != usr) + return -/obj/item/weapon/toolbox_tiles_sensor/attackby(var/obj/item/robot_parts/P, mob/user as mob) - if(!istype(P, /obj/item/robot_parts/l_arm) && !istype(P, /obj/item/robot_parts/r_arm)) - return - var/obj/machinery/bot/floorbot/A = new /obj/machinery/bot/floorbot - if(user.r_hand == src || user.l_hand == src) - A.loc = user.loc - else - A.loc = src.loc - user << "You add the robot arm to the odd looking toolbox assembly! Boop beep!" - del(P) - del(src) + src.created_name = t + +/obj/item/weapon/toolbox_tiles_sensor/attackby(var/obj/item/W, mob/user as mob) + if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm)) + var/obj/machinery/bot/floorbot/A = new /obj/machinery/bot/floorbot + if(user.r_hand == src || user.l_hand == src) + A.loc = user.loc + else + A.loc = src.loc + A.name = src.created_name + user << "You add the robot arm to the odd looking toolbox assembly! Boop beep!" + del(W) + del(src) + else if (istype(W, /obj/item/weapon/pen)) + var/t = input(user, "Enter new robot name", src.name, src.created_name) as text + t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN) + if (!t) + return + if (!in_range(src, usr) && src.loc != usr) + return + + src.created_name = t \ No newline at end of file diff --git a/code/game/objects/items/robot_parts.dm b/code/game/objects/items/robot_parts.dm index 05269621575..9aed4fc2160 100644 --- a/code/game/objects/items/robot_parts.dm +++ b/code/game/objects/items/robot_parts.dm @@ -43,6 +43,7 @@ var/obj/item/robot_parts/chest/chest = null var/obj/item/robot_parts/head/head = null var/obj/item/brain/brain = null + var/created_name = "Cyborg" /obj/item/robot_parts/robot_suit/New() ..() @@ -138,8 +139,8 @@ O.gender = src.brain.owner.gender //O.start = 1 O.invisibility = 0 - O.name = "Cyborg" - O.real_name = "Cyborg" + O.name = src.created_name + O.real_name = src.created_name if (src.brain.owner.client) O.lastKnownIP = src.brain.owner.client.address @@ -167,6 +168,16 @@ else user << "\blue The brain must go in after everything else!" + if (istype(W, /obj/item/weapon/pen)) + var/t = input(user, "Enter new robot name", src.name, src.created_name) as text + t = copytext(sanitize(t), 1, MAX_MESSAGE_LEN) + if (!t) + return + if (!in_range(src, usr) && src.loc != usr) + return + + src.created_name = t + return /obj/item/robot_parts/chest/attackby(obj/item/W as obj, mob/user as mob)