Sleepers can be properly upgraded.

This commit is contained in:
Mechoid
2019-03-31 17:09:51 -07:00
parent 46c1d34f86
commit dac9ef9be5
2 changed files with 49 additions and 1 deletions

View File

@@ -170,6 +170,7 @@
..()
beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src)
component_parts = list()
component_parts += new /obj/item/weapon/stock_parts/manipulator(src)
component_parts += new /obj/item/weapon/stock_parts/scanning_module(src)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src)
@@ -179,7 +180,49 @@
component_parts += new /obj/item/weapon/reagent_containers/syringe(src)
component_parts += new /obj/item/stack/material/glass/reinforced(src, 2)
RefreshParts()
RefreshParts(0)
/obj/machinery/sleeper/RefreshParts(var/limited = 1)
var/man_rating = 0
var/cap_rating = 0
available_chemicals = initial(available_chemicals)
idle_power_usage = initial(idle_power_usage)
active_power_usage = initial(active_power_usage)
for(var/obj/item/weapon/stock_parts/P in component_parts)
if(istype(P, /obj/item/weapon/stock_parts/capacitor))
cap_rating += P.rating
cap_rating = max(1, round(cap_rating / 2))
idle_power_usage /= cap_rating
active_power_usage /= cap_rating
if(!limited)
for(var/obj/item/weapon/stock_parts/P in component_parts)
if(istype(P, /obj/item/weapon/stock_parts/manipulator))
man_rating += P.rating - 1
var/new_chemicals = list()
if(man_rating >= 4) // Alien tech.
var/reag_ID = pickweight(
"healing_nanites" = 10,
"shredding_nanites" = 5,
"irradiated_nanites" = 5,
"neurophage_nanites" = 2
)
new_chemicals[reag_ID] = "Nanite"
if(man_rating >= 3) // Anomalous tech.
new_chemicals["immunosuprizine"] = "Immunosuprizine"
if(man_rating >= 2) // Tier 3.
new_chemicals["spaceacillin"] = "Spaceacillin"
if(man_rating >= 1) // Tier 2.
new_chemicals["ethylredoxrazine"] = "Ethylredoxrazine"
available_chemicals += new_chemicals
return
/obj/machinery/sleeper/Initialize()
. = ..()
@@ -351,3 +394,7 @@
desc = "A limited functionality sleeper, all it can do is put patients into stasis. It lacks the medication and configuration of the larger units."
icon_state = "sleeper"
stasis_level = 100 //Just one setting
/obj/machinery/sleeper/survival_pod/New()
..()
RefreshParts()

View File

@@ -197,6 +197,7 @@
board_type = new /datum/frame/frame_types/medical_pod
origin_tech = list(TECH_MAGNET = 2, TECH_BIO = 2)
req_components = list(
/obj/item/weapon/stock_parts/manipulator = 1,
/obj/item/weapon/stock_parts/scanning_module = 1,
/obj/item/weapon/reagent_containers/glass/beaker = 3,
/obj/item/weapon/reagent_containers/syringe = 3,