mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 19:22:56 +00:00
107 lines
4.8 KiB
Plaintext
107 lines
4.8 KiB
Plaintext
|
|
/obj/item/integrated_circuit/passive/power
|
|
name = "power thingy"
|
|
desc = "Does power stuff."
|
|
complexity = 5
|
|
origin_tech = list(TECH_POWER = 2, TECH_ENGINEERING = 2, TECH_DATA = 2)
|
|
category_text = "Power - Passive"
|
|
|
|
/obj/item/integrated_circuit/passive/power/proc/make_energy()
|
|
return
|
|
|
|
// For calculators.
|
|
/obj/item/integrated_circuit/passive/power/solar_cell
|
|
name = "tiny photovoltaic cell"
|
|
desc = "It's a very tiny solar cell, generally used in calculators."
|
|
extended_desc = "The cell generates 1W of energy per second in optimal lighting conditions. Less light will result in less power being generated."
|
|
icon_state = "solar_cell"
|
|
complexity = 8
|
|
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 3, TECH_DATA = 2)
|
|
spawn_flags = IC_SPAWN_DEFAULT|IC_SPAWN_RESEARCH
|
|
var/max_power = 1
|
|
|
|
/obj/item/integrated_circuit/passive/power/solar_cell/make_energy()
|
|
var/turf/T = get_turf(src)
|
|
var/light_amount = T ? T.get_lumcount() : 0
|
|
var/adjusted_power = max(max_power * light_amount, 0)
|
|
adjusted_power = round(adjusted_power, 0.1)
|
|
if(adjusted_power)
|
|
if(assembly)
|
|
assembly.give_power(adjusted_power)
|
|
|
|
// For implants.
|
|
/obj/item/integrated_circuit/passive/power/metabolic_siphon
|
|
name = "metabolic siphon"
|
|
desc = "A complicated piece of technology which converts bodily nutriments of a host into electricity."
|
|
extended_desc = "The siphon generates 10W of energy, so long as the siphon exists inside a biological entity. The entity will feel an increased \
|
|
appetite and will need to eat more often due to this. This device will fail if used inside synthetic entities."
|
|
icon_state = "setup_implant"
|
|
complexity = 10
|
|
origin_tech = list(TECH_POWER = 4, TECH_ENGINEERING = 4, TECH_DATA = 4, TECH_BIO = 5)
|
|
spawn_flags = IC_SPAWN_RESEARCH
|
|
|
|
/obj/item/integrated_circuit/passive/power/metabolic_siphon/proc/test_validity(var/mob/living/carbon/human/host)
|
|
if(!host || host.isSynthetic() || host.stat == DEAD || host.nutrition <= 10)
|
|
return FALSE // Robots and dead people don't have a metabolism.
|
|
return TRUE
|
|
|
|
/obj/item/integrated_circuit/passive/power/metabolic_siphon/make_energy()
|
|
var/mob/living/carbon/human/host = null
|
|
if(assembly && istype(assembly, /obj/item/device/electronic_assembly/implant))
|
|
var/obj/item/device/electronic_assembly/implant/implant_assembly = assembly
|
|
if(implant_assembly.implant.imp_in)
|
|
host = implant_assembly.implant.imp_in
|
|
if(host && test_validity(host))
|
|
assembly.give_power(10)
|
|
host.nutrition = max(host.nutrition - DEFAULT_HUNGER_FACTOR, 0)
|
|
|
|
/obj/item/integrated_circuit/passive/power/metabolic_siphon/synthetic
|
|
name = "internal energy siphon"
|
|
desc = "A small circuit designed to be connected to an internal power wire inside a synthetic entity."
|
|
extended_desc = "The siphon generates 10W of energy, so long as the siphon exists inside a synthetic entity. The entity need to recharge \
|
|
more often due to this. This device will fail if used inside organic entities."
|
|
icon_state = "setup_implant"
|
|
complexity = 10
|
|
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 4, TECH_DATA = 3)
|
|
spawn_flags = IC_SPAWN_RESEARCH
|
|
|
|
/obj/item/integrated_circuit/passive/power/metabolic_siphon/synthetic/test_validity(var/mob/living/carbon/human/host)
|
|
if(!host || !host.isSynthetic() || host.stat == DEAD || host.nutrition <= 10)
|
|
return FALSE // This time we don't want a metabolism.
|
|
return TRUE
|
|
|
|
// For fat machines that need fat power, like drones.
|
|
/obj/item/integrated_circuit/passive/power/relay
|
|
name = "tesla power relay"
|
|
desc = "A seemingly enigmatic device which connects to nearby APCs wirelessly and draws power from them."
|
|
w_class = ITEMSIZE_NORMAL
|
|
extended_desc = "The siphon generates 250W of energy, so long as an APC is in the same room, with a cell that has energy. It will always drain \
|
|
from the 'equipment' power channel."
|
|
icon_state = "power_relay"
|
|
complexity = 7
|
|
origin_tech = list(TECH_POWER = 3, TECH_ENGINEERING = 3, TECH_DATA = 2)
|
|
spawn_flags = IC_SPAWN_RESEARCH
|
|
var/power_amount = 250
|
|
|
|
// For really fat machines.
|
|
/obj/item/integrated_circuit/passive/power/relay/large
|
|
name = "large tesla power relay"
|
|
desc = "A seemingly enigmatic device which connects to nearby APCs wirelessly and draws power from them, now in industiral size!"
|
|
w_class = ITEMSIZE_LARGE
|
|
extended_desc = "The siphon generates 2 kW of energy, so long as an APC is in the same room, with a cell that has energy. It will always drain \
|
|
from the 'equipment' power channel."
|
|
icon_state = "power_relay"
|
|
complexity = 15
|
|
origin_tech = list(TECH_POWER = 6, TECH_ENGINEERING = 5, TECH_DATA = 4)
|
|
spawn_flags = IC_SPAWN_RESEARCH
|
|
power_amount = 2000
|
|
|
|
/obj/item/integrated_circuit/passive/power/relay/make_energy()
|
|
if(!assembly)
|
|
return
|
|
var/area/A = get_area(src)
|
|
if(A)
|
|
if(A.powered(EQUIP) && assembly.give_power(power_amount))
|
|
A.use_power(power_amount, EQUIP)
|
|
// give_power() handles CELLRATE on its own.
|