Files
CHOMPStation2/code/modules/power/fusion/fuel_assembly/fuel_assembly.dm
2019-10-06 03:30:36 -04:00

67 lines
1.9 KiB
Plaintext

/obj/item/weapon/fuel_assembly
name = "fuel rod assembly"
icon = 'icons/obj/machines/power/fusion.dmi'
icon_state = "fuel_assembly"
var/material_name
var/percent_depleted = 1
var/list/rod_quantities = list()
var/fuel_type = "composite"
var/fuel_colour
var/radioactivity = 0
var/const/initial_amount = 300
/obj/item/weapon/fuel_assembly/New(var/newloc, var/_material, var/_colour)
fuel_type = _material
fuel_colour = _colour
..(newloc)
/obj/item/weapon/fuel_assembly/Initialize()
. = ..()
var/material/material = get_material_by_name(fuel_type)
if(istype(material))
name = "[material.use_name] fuel rod assembly"
desc = "A fuel rod for a fusion reactor. This one is made from [material.use_name]."
fuel_colour = material.icon_colour
fuel_type = material.use_name
if(material.radioactivity)
radioactivity = material.radioactivity
desc += " It is warm to the touch."
START_PROCESSING(SSobj, src)
if(material.luminescence)
set_light(material.luminescence, material.luminescence, material.icon_colour)
else
name = "[fuel_type] fuel rod assembly"
desc = "A fuel rod for a fusion reactor. This one is made from [fuel_type]."
icon_state = "blank"
var/image/I = image(icon, "fuel_assembly")
I.color = fuel_colour
overlays += list(I, image(icon, "fuel_assembly_bracket"))
rod_quantities[fuel_type] = initial_amount
/obj/item/weapon/fuel_assembly/process()
if(!radioactivity)
return PROCESS_KILL
if(istype(loc, /turf))
SSradiation.radiate(src, max(1,CEILING(radioactivity/30, 1)))
/obj/item/weapon/fuel_assembly/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
// Mapper shorthand.
/obj/item/weapon/fuel_assembly/deuterium/New(var/newloc)
..(newloc, "deuterium")
/obj/item/weapon/fuel_assembly/tritium/New(var/newloc)
..(newloc, "tritium")
/obj/item/weapon/fuel_assembly/phoron/New(var/newloc)
..(newloc, "phoron")
/obj/item/weapon/fuel_assembly/supermatter/New(var/newloc)
..(newloc, "supermatter")