mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Merge pull request #2484 from MagmaRam/robot_fixer
Allows robots to be constructed with prosthetic limbs as well as borg…
This commit is contained in:
@@ -180,11 +180,11 @@
|
||||
w_class = 3.0
|
||||
var/created_name = "Cleanbot"
|
||||
|
||||
/obj/item/weapon/bucket_sensor/attackby(var/obj/item/O, var/mob/user)
|
||||
/obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, var/mob/user)
|
||||
..()
|
||||
if(istype(O, /obj/item/robot_parts/l_arm) || istype(O, /obj/item/robot_parts/r_arm))
|
||||
if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm) || (istype(W, /obj/item/organ/external/arm) && ((W.name == "robotic left arm") || (W.name == "robotic right arm"))))
|
||||
user.drop_item()
|
||||
qdel(O)
|
||||
qdel(W)
|
||||
var/turf/T = get_turf(loc)
|
||||
var/mob/living/bot/cleanbot/A = new /mob/living/bot/cleanbot(T)
|
||||
A.name = created_name
|
||||
@@ -192,7 +192,7 @@
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(O, /obj/item/weapon/pen))
|
||||
else if(istype(W, /obj/item/weapon/pen))
|
||||
var/t = sanitizeSafe(input(user, "Enter new robot name", name, created_name), MAX_NAME_LEN)
|
||||
if(!t)
|
||||
return
|
||||
|
||||
@@ -94,7 +94,7 @@
|
||||
|
||||
switch(build_step)
|
||||
if(0, 1)
|
||||
if(istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg))
|
||||
if(istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg) || (istype(W, /obj/item/organ/external/leg) && ((W.name == "robotic right leg") || (W.name == "robotic left leg"))))
|
||||
user.drop_item()
|
||||
qdel(W)
|
||||
build_step++
|
||||
|
||||
@@ -337,6 +337,18 @@
|
||||
|
||||
new /obj/item/weapon/farmbot_arm_assembly(loc, src)
|
||||
|
||||
/obj/structure/reagent_dispensers/watertank/attackby(var/obj/item/organ/external/S, mob/user as mob)
|
||||
if ((!istype(S, /obj/item/organ/external/arm)) && (!S.robotic == ORGAN_ROBOT))
|
||||
..()
|
||||
return
|
||||
|
||||
user << "You add the robot arm to [src]."
|
||||
|
||||
user.drop_from_inventory(S)
|
||||
qdel(S)
|
||||
|
||||
new /obj/item/weapon/farmbot_arm_assembly(loc, src)
|
||||
|
||||
/obj/item/weapon/farmbot_arm_assembly/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
if((istype(W, /obj/item/device/analyzer/plant_analyzer)) && (build_step == 0))
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
|
||||
/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))
|
||||
if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm) || (istype(W, /obj/item/organ/external/arm) && ((W.name == "robotic right arm") || (W.name == "robotic left arm"))))
|
||||
qdel(W)
|
||||
var/turf/T = get_turf(user.loc)
|
||||
var/mob/living/bot/floorbot/A = new /mob/living/bot/floorbot(T)
|
||||
|
||||
@@ -286,6 +286,52 @@
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/attackby(var/obj/item/robot_parts/S, mob/user as mob)
|
||||
if ((!istype(S, /obj/item/robot_parts/l_arm)) && (!istype(S, /obj/item/robot_parts/r_arm)))
|
||||
..()
|
||||
return
|
||||
|
||||
if(contents.len >= 1)
|
||||
user << "<span class='notice'>You need to empty [src] out first.</span>"
|
||||
return
|
||||
|
||||
var/obj/item/weapon/firstaid_arm_assembly/A = new /obj/item/weapon/firstaid_arm_assembly
|
||||
if(istype(src, /obj/item/weapon/storage/firstaid/fire))
|
||||
A.skin = "ointment"
|
||||
else if(istype(src, /obj/item/weapon/storage/firstaid/toxin))
|
||||
A.skin = "tox"
|
||||
else if(istype(src, /obj/item/weapon/storage/firstaid/o2))
|
||||
A.skin = "o2"
|
||||
|
||||
qdel(S)
|
||||
user.put_in_hands(A)
|
||||
user << "<span class='notice'>You add the robot arm to the first aid kit.</span>"
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/storage/firstaid/attackby(var/obj/item/organ/external/S, mob/user as mob)
|
||||
if (!istype(S, /obj/item/organ/external/arm) && !(S.robotic == ORGAN_ROBOT))
|
||||
..()
|
||||
return
|
||||
|
||||
if(contents.len >= 1)
|
||||
user << "<span class='notice'>You need to empty [src] out first.</span>"
|
||||
return
|
||||
|
||||
var/obj/item/weapon/firstaid_arm_assembly/A = new /obj/item/weapon/firstaid_arm_assembly
|
||||
if(istype(src, /obj/item/weapon/storage/firstaid/fire))
|
||||
A.skin = "ointment"
|
||||
else if(istype(src, /obj/item/weapon/storage/firstaid/toxin))
|
||||
A.skin = "tox"
|
||||
else if(istype(src, /obj/item/weapon/storage/firstaid/o2))
|
||||
A.skin = "o2"
|
||||
|
||||
qdel(S)
|
||||
user.put_in_hands(A)
|
||||
user << "<span class='notice'>You add the robot arm to the first aid kit.</span>"
|
||||
user.drop_from_inventory(src)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/firstaid_arm_assembly
|
||||
name = "first aid/robot arm assembly"
|
||||
desc = "A first aid kit with a robot arm permanently grafted to it."
|
||||
|
||||
@@ -258,40 +258,40 @@
|
||||
var/build_step = 0
|
||||
var/created_name = "Securitron"
|
||||
|
||||
/obj/item/weapon/secbot_assembly/attackby(var/obj/item/O, var/mob/user)
|
||||
/obj/item/weapon/secbot_assembly/attackby(var/obj/item/W, var/mob/user)
|
||||
..()
|
||||
if(istype(O, /obj/item/weapon/weldingtool) && !build_step)
|
||||
var/obj/item/weapon/weldingtool/WT = O
|
||||
if(istype(W, /obj/item/weapon/weldingtool) && !build_step)
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0, user))
|
||||
build_step = 1
|
||||
overlays += image('icons/obj/aibots.dmi', "hs_hole")
|
||||
user << "You weld a hole in \the [src]."
|
||||
|
||||
else if(isprox(O) && (build_step == 1))
|
||||
else if(isprox(W) && (build_step == 1))
|
||||
user.drop_item()
|
||||
build_step = 2
|
||||
user << "You add \the [O] to [src]."
|
||||
user << "You add \the [W] to [src]."
|
||||
overlays += image('icons/obj/aibots.dmi', "hs_eye")
|
||||
name = "helmet/signaler/prox sensor assembly"
|
||||
qdel(O)
|
||||
qdel(W)
|
||||
|
||||
else if((istype(O, /obj/item/robot_parts/l_arm) || istype(O, /obj/item/robot_parts/r_arm)) && build_step == 2)
|
||||
else if((istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm) || (istype(W, /obj/item/organ/external/arm) && ((W.name == "robotic right arm") || (W.name == "robotic left arm")))) && build_step == 2)
|
||||
user.drop_item()
|
||||
build_step = 3
|
||||
user << "You add \the [O] to [src]."
|
||||
user << "You add \the [W] to [src]."
|
||||
name = "helmet/signaler/prox sensor/robot arm assembly"
|
||||
overlays += image('icons/obj/aibots.dmi', "hs_arm")
|
||||
qdel(O)
|
||||
qdel(W)
|
||||
|
||||
else if(istype(O, /obj/item/weapon/melee/baton) && build_step == 3)
|
||||
else if(istype(W, /obj/item/weapon/melee/baton) && build_step == 3)
|
||||
user.drop_item()
|
||||
user << "You complete the Securitron! Beep boop."
|
||||
var/mob/living/bot/secbot/S = new /mob/living/bot/secbot(get_turf(src))
|
||||
S.name = created_name
|
||||
qdel(O)
|
||||
qdel(W)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(O, /obj/item/weapon/pen))
|
||||
else if(istype(W, /obj/item/weapon/pen))
|
||||
var/t = sanitizeSafe(input(user, "Enter new robot name", name, created_name), MAX_NAME_LEN)
|
||||
if(!t)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user