mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-29 15:08:34 +01:00
Telekinetic Gloves (#18205)
* TK gloves * fixes * spans * research --------- Co-authored-by: Cameron Lennox <killer65311@gmail.com>
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
/obj/item/clothing/gloves/telekinetic
|
||||
desc = "Gloves with a built in telekinesis module, allows for remote interaction with small objects."
|
||||
name = "kinesis assistance module"
|
||||
icon_state = "regen"
|
||||
item_state = "graygloves"
|
||||
var/use_power_amount = 12
|
||||
|
||||
origin_tech = list(TECH_ENGINEERING = 4, TECH_BLUESPACE = 4)
|
||||
|
||||
/obj/item/clothing/gloves/telekinetic/Initialize(mapload)
|
||||
. = ..()
|
||||
cell = new /obj/item/cell/device(src)
|
||||
|
||||
/obj/item/clothing/gloves/telekinetic/proc/has_grip_power()
|
||||
if(cell && cell.charge >= use_power_amount)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/item/clothing/gloves/telekinetic/proc/use_grip_power(var/mob/user,var/play_sound)
|
||||
if(cell)
|
||||
cell.checked_use(use_power_amount)
|
||||
if(play_sound)
|
||||
if(cell.charge < use_power_amount)
|
||||
to_chat(user,span_danger("\The [src] bwoop as it runs out of power."))
|
||||
playsound(src,'sound/machines/synth_no.ogg')
|
||||
else
|
||||
playsound(src,'sound/machines/generator/generator_end.ogg',70,1)
|
||||
|
||||
/obj/item/clothing/gloves/telekinetic/attack_hand(mob/user as mob)
|
||||
if(user.get_inactive_hand() == src)
|
||||
if(cell)
|
||||
cell.update_icon()
|
||||
user.put_in_hands(cell)
|
||||
cell = null
|
||||
to_chat(user, span_notice("You remove the cell from the [src]."))
|
||||
playsound(src, 'sound/machines/button.ogg', 30, 1, 0)
|
||||
return
|
||||
..()
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/item/clothing/gloves/telekinetic/attackby(obj/item/W, mob/user as mob)
|
||||
if(istype(W, /obj/item/cell))
|
||||
if(istype(W, /obj/item/cell/device))
|
||||
if(!cell)
|
||||
user.drop_item()
|
||||
W.loc = src
|
||||
cell = W
|
||||
to_chat(user, span_notice("You install a cell in \the [src]."))
|
||||
playsound(src, 'sound/machines/button.ogg', 30, 1, 0)
|
||||
else
|
||||
to_chat(user, span_warning("\The [src] already has a cell."))
|
||||
else
|
||||
to_chat(user, span_warning("\The [src] cannot use that type of cell."))
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/clothing/gloves/telekinetic/examine(mob/user)
|
||||
. = ..()
|
||||
if(cell)
|
||||
. += span_info("\The [src] has a \the [cell] attached.")
|
||||
if(cell.charge <= cell.maxcharge*0.25)
|
||||
. += span_warning("It appears to have a low amount of power remaining.")
|
||||
else if(cell.charge > cell.maxcharge*0.25 && cell.charge <= cell.maxcharge*0.5)
|
||||
. += span_notice("It appears to have an average amount of power remaining.")
|
||||
else if(cell.charge > cell.maxcharge*0.5 && cell.charge <= cell.maxcharge*0.75)
|
||||
. += span_info("It appears to have an above average amount of power remaining.")
|
||||
else if(cell.charge > cell.maxcharge*0.75 && cell.charge <= cell.maxcharge)
|
||||
. += span_info("It appears to have a high amount of power remaining.")
|
||||
else
|
||||
. += span_warning("\The [src] has an empty powercell slot.")
|
||||
@@ -874,3 +874,15 @@
|
||||
RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_ORGANS_MISC
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
|
||||
|
||||
/datum/design_techweb/telekinetic_gloves
|
||||
name = "Kinesis Assistance Module"
|
||||
id = "tk_gloves"
|
||||
// req_tech = list(TECH_MATERIAL = 4, TECH_ENGINEERING = 3, TECH_BLUESPACE = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_VERDANTIUM = 1000, MAT_SILVER = 300, MAT_PLASTEEL = 1000)
|
||||
build_path = /obj/item/clothing/gloves/telekinetic
|
||||
category = list(
|
||||
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED
|
||||
)
|
||||
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE | DEPARTMENT_BITFLAG_ENGINEERING
|
||||
|
||||
@@ -103,3 +103,14 @@
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
|
||||
announce_channels = list(CHANNEL_SCIENCE)
|
||||
|
||||
/datum/techweb_node/telekinetics
|
||||
id = TECHWEB_NODE_TELEKINETIC_RESEARCH
|
||||
display_name = "Applied Telekinetics Research"
|
||||
description = "Altering the physical behavior of objects to allow remote interaction and movement."
|
||||
prereq_ids = list(TECHWEB_NODE_APPLIED_BLUESPACE,TECHWEB_NODE_CYBER_IMPLANTS)
|
||||
design_ids = list(
|
||||
"tk_gloves",
|
||||
)
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
|
||||
announce_channels = list(CHANNEL_SCIENCE)
|
||||
|
||||
Reference in New Issue
Block a user