Merge pull request #9619 from BlackMajor/Yote
Buffs engiborg build potential
This commit is contained in:
@@ -746,3 +746,73 @@
|
|||||||
..()
|
..()
|
||||||
hud = new /obj/item/clothing/glasses/hud/security(src)
|
hud = new /obj/item/clothing/glasses/hud/security(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
Grippers oh god oh fuck
|
||||||
|
***********************************************************************/
|
||||||
|
|
||||||
|
/obj/item/weapon/gripper
|
||||||
|
name = "circuit gripper"
|
||||||
|
desc = "A simple grasping tool for inserting circuitboards into machinary."
|
||||||
|
icon = 'icons/obj/device.dmi'
|
||||||
|
icon_state = "gripper"
|
||||||
|
|
||||||
|
item_flags = NOBLUDGEON
|
||||||
|
|
||||||
|
//Has a list of items that it can hold.
|
||||||
|
var/list/can_hold = list(
|
||||||
|
/obj/item/circuitboard
|
||||||
|
)
|
||||||
|
|
||||||
|
var/obj/item/wrapped = null // Item currently being held.
|
||||||
|
|
||||||
|
/obj/item/weapon/gripper/attack_self()
|
||||||
|
if(wrapped)
|
||||||
|
wrapped.forceMove(get_turf(wrapped))
|
||||||
|
wrapped = null
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/obj/item/weapon/gripper/afterattack(var/atom/target, var/mob/living/user, proximity, params)
|
||||||
|
|
||||||
|
if(!proximity)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(!wrapped)
|
||||||
|
for(var/obj/item/thing in src.contents)
|
||||||
|
wrapped = thing
|
||||||
|
break
|
||||||
|
|
||||||
|
if(wrapped) //Already have an item.
|
||||||
|
//Temporary put wrapped into user so target's attackby() checks pass.
|
||||||
|
wrapped.loc = user
|
||||||
|
|
||||||
|
//Pass the attack on to the target. This might delete/relocate wrapped.
|
||||||
|
var/resolved = target.attackby(wrapped,user)
|
||||||
|
if(!resolved && wrapped && target)
|
||||||
|
wrapped.afterattack(target,user,1)
|
||||||
|
//If wrapped was neither deleted nor put into target, put it back into the gripper.
|
||||||
|
if(wrapped && user && (wrapped.loc == user))
|
||||||
|
wrapped.loc = src
|
||||||
|
else
|
||||||
|
wrapped = null
|
||||||
|
return
|
||||||
|
|
||||||
|
else if(istype(target,/obj/item))
|
||||||
|
|
||||||
|
var/obj/item/I = target
|
||||||
|
|
||||||
|
var/grab = 0
|
||||||
|
for(var/typepath in can_hold)
|
||||||
|
if(istype(I,typepath))
|
||||||
|
grab = 1
|
||||||
|
break
|
||||||
|
|
||||||
|
//We can grab the item, finally.
|
||||||
|
if(grab)
|
||||||
|
to_chat(user, "You collect \the [I].")
|
||||||
|
I.loc = src
|
||||||
|
wrapped = I
|
||||||
|
return
|
||||||
|
else
|
||||||
|
to_chat(user, "<span class='danger'>Your gripper cannot hold \the [target].</span>")
|
||||||
|
|||||||
@@ -598,10 +598,10 @@
|
|||||||
R.update_transform()
|
R.update_transform()
|
||||||
|
|
||||||
/obj/item/borg/upgrade/rped
|
/obj/item/borg/upgrade/rped
|
||||||
name = "engineering cyborg RPED"
|
name = "engineering cyborg BSRPED"
|
||||||
desc = "A rapid part exchange device for the engineering cyborg."
|
desc = "A rapid part exchange device for the engineering cyborg."
|
||||||
icon = 'icons/obj/storage.dmi'
|
icon = 'icons/obj/storage.dmi'
|
||||||
icon_state = "borgrped"
|
icon_state = "borg_BS_RPED"
|
||||||
require_module = TRUE
|
require_module = TRUE
|
||||||
module_type = list(/obj/item/robot_module/engineering)
|
module_type = list(/obj/item/robot_module/engineering)
|
||||||
|
|
||||||
@@ -609,14 +609,21 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
if(.)
|
if(.)
|
||||||
|
|
||||||
|
var/obj/item/storage/part_replacer/bluespace/cyborg/BSRPED = locate() in R
|
||||||
var/obj/item/storage/part_replacer/cyborg/RPED = locate() in R
|
var/obj/item/storage/part_replacer/cyborg/RPED = locate() in R
|
||||||
if(RPED)
|
if(!RPED)
|
||||||
to_chat(user, "<span class='warning'>This unit is already equipped with a RPED module.</span>")
|
RPED = locate() in R.module
|
||||||
|
if(!BSRPED)
|
||||||
|
BSRPED = locate() in R.module //There's gotta be a smarter way to do this.
|
||||||
|
if(BSRPED)
|
||||||
|
to_chat(user, "<span class='warning'>This unit is already equipped with a BSRPED module.</span>")
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
RPED = new(R.module)
|
BSRPED = new(R.module)
|
||||||
R.module.basic_modules += RPED
|
SEND_SIGNAL(RPED, COMSIG_TRY_STORAGE_QUICK_EMPTY)
|
||||||
R.module.add_module(RPED, FALSE, TRUE)
|
qdel(RPED)
|
||||||
|
R.module.basic_modules += BSRPED
|
||||||
|
R.module.add_module(BSRPED, FALSE, TRUE)
|
||||||
|
|
||||||
/obj/item/borg/upgrade/rped/deactivate(mob/living/silicon/robot/R, user = usr)
|
/obj/item/borg/upgrade/rped/deactivate(mob/living/silicon/robot/R, user = usr)
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -311,6 +311,10 @@
|
|||||||
/obj/item/multitool/cyborg,
|
/obj/item/multitool/cyborg,
|
||||||
/obj/item/t_scanner,
|
/obj/item/t_scanner,
|
||||||
/obj/item/analyzer,
|
/obj/item/analyzer,
|
||||||
|
/obj/item/storage/part_replacer/cyborg,
|
||||||
|
/obj/item/holosign_creator/atmos,
|
||||||
|
/obj/item/weapon/gripper,
|
||||||
|
/obj/item/lightreplacer/cyborg,
|
||||||
/obj/item/geiger_counter/cyborg,
|
/obj/item/geiger_counter/cyborg,
|
||||||
/obj/item/assembly/signaler/cyborg,
|
/obj/item/assembly/signaler/cyborg,
|
||||||
/obj/item/areaeditor/blueprints/cyborg,
|
/obj/item/areaeditor/blueprints/cyborg,
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
|
|||||||
|
|
||||||
/obj/item/storage/part_replacer/bluespace
|
/obj/item/storage/part_replacer/bluespace
|
||||||
name = "bluespace rapid part exchange device"
|
name = "bluespace rapid part exchange device"
|
||||||
desc = "A version of the RPED that allows for replacement of parts and scanning from a distance, along with higher capacity for parts."
|
desc = "A version of the RPED that allows for replacement of parts and scanning from a distance, along with higher capacity for parts. Definitely not just a BSRPED painted orange."
|
||||||
icon_state = "BS_RPED"
|
icon_state = "BS_RPED"
|
||||||
w_class = WEIGHT_CLASS_NORMAL
|
w_class = WEIGHT_CLASS_NORMAL
|
||||||
works_from_distance = TRUE
|
works_from_distance = TRUE
|
||||||
@@ -52,12 +52,10 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
|
|||||||
component_type = /datum/component/storage/concrete/bluespace/rped
|
component_type = /datum/component/storage/concrete/bluespace/rped
|
||||||
|
|
||||||
/obj/item/storage/part_replacer/cyborg
|
/obj/item/storage/part_replacer/cyborg
|
||||||
name = "rapid part exchange device"
|
|
||||||
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
|
|
||||||
icon_state = "borgrped"
|
icon_state = "borgrped"
|
||||||
item_state = "RPED"
|
|
||||||
lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
|
/obj/item/storage/part_replacer/bluespace/cyborg
|
||||||
righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
|
icon_state = "borg_BS_RPED"
|
||||||
|
|
||||||
/proc/cmp_rped_sort(obj/item/A, obj/item/B)
|
/proc/cmp_rped_sort(obj/item/A, obj/item/B)
|
||||||
return B.get_part_rating() - A.get_part_rating()
|
return B.get_part_rating() - A.get_part_rating()
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 46 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 67 KiB |
Reference in New Issue
Block a user