mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-15 10:04:30 +01:00
210 lines
7.2 KiB
Plaintext
210 lines
7.2 KiB
Plaintext
/// Materials made from other materials.
|
|
/datum/material/alloy
|
|
name = "alloy"
|
|
desc = "A material composed of two or more other materials."
|
|
abstract_type = /datum/material/alloy
|
|
/// The materials this alloy is made from weighted by their ratios.
|
|
var/list/composition = null
|
|
|
|
/datum/material/alloy/return_composition(amount = 1, flags)
|
|
if(flags & MATCONTAINER_ACCEPT_ALLOYS)
|
|
return ..()
|
|
|
|
. = list()
|
|
|
|
var/list/cached_comp = composition
|
|
for(var/comp_mat in cached_comp)
|
|
var/datum/material/component_material = SSmaterials.get_material(comp_mat)
|
|
var/list/component_composition = component_material.return_composition(cached_comp[comp_mat], flags)
|
|
for(var/comp_comp_mat in component_composition)
|
|
.[comp_comp_mat] += component_composition[comp_comp_mat] * amount
|
|
|
|
/**
|
|
* Plasteel
|
|
* An alloy of iron and plasma.
|
|
* Applies a significant slowdown effect to any and all items that contain it.
|
|
*/
|
|
/datum/material/alloy/plasteel
|
|
name = "plasteel"
|
|
desc = "The heavy duty result of infusing iron with plasma."
|
|
color = "#706374"
|
|
mat_flags = MATERIAL_BASIC_RECIPES | MATERIAL_CLASS_METAL | MATERIAL_CLASS_RIGID
|
|
mat_properties = list(
|
|
MATERIAL_DENSITY = 6,
|
|
MATERIAL_HARDNESS = 8,
|
|
MATERIAL_FLEXIBILITY = 1,
|
|
MATERIAL_REFLECTIVITY = 5,
|
|
MATERIAL_ELECTRICAL = 8,
|
|
MATERIAL_THERMAL = 4,
|
|
MATERIAL_CHEMICAL = 6,
|
|
)
|
|
value_per_unit = 0.135
|
|
sheet_type = /obj/item/stack/sheet/plasteel
|
|
material_reagent = list(/datum/reagent/iron = 1, /datum/reagent/toxin/plasma = 1)
|
|
composition = list(/datum/material/iron = 1, /datum/material/plasma = 1)
|
|
mat_rust_resistance = RUST_RESISTANCE_REINFORCED
|
|
|
|
/datum/material/alloy/plasteel/on_applied(atom/source, mat_amount, multiplier, from_slot)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
ADD_TRAIT(source, TRAIT_ROD_LAVA_USABLE, REF(src))
|
|
|
|
/datum/material/alloy/plasteel/on_removed(atom/source, mat_amount, multiplier, from_slot)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
REMOVE_TRAIT(source, TRAIT_ROD_LAVA_USABLE, REF(src))
|
|
|
|
/**
|
|
* Plastitanium
|
|
* An alloy of titanium and plasma.
|
|
*/
|
|
/datum/material/alloy/plastitanium
|
|
name = "plastitanium"
|
|
desc = "The extremely heat resistant result of infusing titanium with plasma."
|
|
color = "#3a313a"
|
|
mat_flags = MATERIAL_BASIC_RECIPES | MATERIAL_CLASS_METAL | MATERIAL_CLASS_RIGID
|
|
mat_properties = list(
|
|
MATERIAL_DENSITY = 4,
|
|
MATERIAL_HARDNESS = 8,
|
|
MATERIAL_FLEXIBILITY = 1,
|
|
MATERIAL_REFLECTIVITY = 8,
|
|
MATERIAL_ELECTRICAL = 6,
|
|
MATERIAL_THERMAL = 1,
|
|
MATERIAL_CHEMICAL = 8,
|
|
)
|
|
value_per_unit = 0.225
|
|
sheet_type = /obj/item/stack/sheet/mineral/plastitanium
|
|
material_reagent = /datum/reagent/toxin/plasma
|
|
composition = list(/datum/material/titanium = 1, /datum/material/plasma = 1)
|
|
mat_rust_resistance = RUST_RESISTANCE_TITANIUM
|
|
|
|
/datum/material/alloy/plastitanium/on_applied(atom/source, mat_amount, multiplier, from_slot)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
ADD_TRAIT(source, TRAIT_ROD_LAVA_USABLE, REF(src))
|
|
|
|
/datum/material/alloy/plastitanium/on_removed(atom/source, mat_amount, multiplier, from_slot)
|
|
. = ..()
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
REMOVE_TRAIT(source, TRAIT_ROD_LAVA_USABLE, REF(src))
|
|
|
|
/**
|
|
* Plasmaglass
|
|
* An alloy of silicate and plasma.
|
|
*/
|
|
/datum/material/alloy/plasmaglass
|
|
name = "plasmaglass"
|
|
desc = "Plasma-infused silicate. It is much more durable and heat resistant than either of its component materials."
|
|
color = "#ff80f4"
|
|
alpha = 150
|
|
starlight_color = COLOR_STRONG_MAGENTA
|
|
mat_flags = MATERIAL_BASIC_RECIPES | MATERIAL_CLASS_CRYSTAL | MATERIAL_CLASS_RIGID
|
|
mat_properties = list(
|
|
MATERIAL_DENSITY = 5,
|
|
MATERIAL_HARDNESS = 6,
|
|
MATERIAL_FLEXIBILITY = 0,
|
|
MATERIAL_REFLECTIVITY = 8,
|
|
MATERIAL_ELECTRICAL = 0,
|
|
MATERIAL_THERMAL = 2,
|
|
MATERIAL_CHEMICAL = 8,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/plasmaglass
|
|
shard_type = /obj/item/shard/plasma
|
|
debris_type = /obj/effect/decal/cleanable/glass/plasma
|
|
material_reagent = list(/datum/reagent/silicon = 1, /datum/reagent/toxin/plasma = 0.5)
|
|
value_per_unit = 0.075
|
|
composition = list(/datum/material/glass = 1, /datum/material/plasma = 0.5)
|
|
|
|
/**
|
|
* Titanium Glass
|
|
* An alloy of glass and titanium.
|
|
*/
|
|
/datum/material/alloy/titaniumglass
|
|
name = "titanium glass"
|
|
desc = "A specialized silicate-titanium alloy that is commonly used in shuttle windows."
|
|
color = "#cfbee0"
|
|
alpha = 150
|
|
starlight_color = COLOR_COMMAND_BLUE
|
|
mat_flags = MATERIAL_BASIC_RECIPES | MATERIAL_CLASS_CRYSTAL | MATERIAL_CLASS_RIGID
|
|
mat_properties = list(
|
|
MATERIAL_DENSITY = 5,
|
|
MATERIAL_HARDNESS = 7,
|
|
MATERIAL_FLEXIBILITY = 0,
|
|
MATERIAL_REFLECTIVITY = 8,
|
|
MATERIAL_ELECTRICAL = 0,
|
|
MATERIAL_THERMAL = 4,
|
|
MATERIAL_CHEMICAL = 8,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/titaniumglass
|
|
shard_type = /obj/item/shard/titanium
|
|
debris_type = /obj/effect/decal/cleanable/glass/titanium
|
|
material_reagent = /datum/reagent/silicon
|
|
value_per_unit = 0.04
|
|
composition = list(/datum/material/glass = 1, /datum/material/titanium = 0.5)
|
|
|
|
/**
|
|
* Plastitanium Glass
|
|
* An alloy of plastitanium and glass.
|
|
*/
|
|
/datum/material/alloy/plastitaniumglass
|
|
name = "plastitanium glass"
|
|
desc = "A specialized silicate-plastitanium alloy."
|
|
color = "#5d3369"
|
|
starlight_color = COLOR_CENTCOM_BLUE
|
|
alpha = 150
|
|
mat_flags = MATERIAL_BASIC_RECIPES | MATERIAL_CLASS_CRYSTAL | MATERIAL_CLASS_RIGID
|
|
mat_properties = list(
|
|
MATERIAL_DENSITY = 4,
|
|
MATERIAL_HARDNESS = 8,
|
|
MATERIAL_FLEXIBILITY = 0,
|
|
MATERIAL_REFLECTIVITY = 8,
|
|
MATERIAL_ELECTRICAL = 0,
|
|
MATERIAL_THERMAL = 2,
|
|
MATERIAL_CHEMICAL = 8,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/plastitaniumglass
|
|
shard_type = /obj/item/shard/plastitanium
|
|
debris_type = /obj/effect/decal/cleanable/glass/plastitanium
|
|
material_reagent = list(/datum/reagent/silicon = 1, /datum/reagent/toxin/plasma = 0.5)
|
|
value_per_unit = 0.125
|
|
composition = list(/datum/material/glass = 1, /datum/material/alloy/plastitanium = 0.5)
|
|
|
|
/**
|
|
* Alien Alloy
|
|
* Densified plasteel.
|
|
* Applies a significant slowdown effect to anything that contains it.
|
|
* Anything constructed from it can slowly regenerate.
|
|
*/
|
|
/datum/material/alloy/alien
|
|
name = "alien alloy"
|
|
desc = "An extremely dense alloy similar to plasteel in composition. It requires exotic metallurgical processes to create."
|
|
color = "#6041aa"
|
|
mat_flags = MATERIAL_BASIC_RECIPES | MATERIAL_CLASS_METAL | MATERIAL_CLASS_RIGID
|
|
mat_properties = list(
|
|
MATERIAL_DENSITY = 8,
|
|
MATERIAL_HARDNESS = 8,
|
|
MATERIAL_FLEXIBILITY = 3,
|
|
MATERIAL_REFLECTIVITY = 7,
|
|
MATERIAL_ELECTRICAL = 8,
|
|
MATERIAL_THERMAL = 1,
|
|
MATERIAL_CHEMICAL = 10,
|
|
)
|
|
sheet_type = /obj/item/stack/sheet/mineral/abductor
|
|
material_reagent = list(/datum/reagent/iron = 1, /datum/reagent/toxin/plasma = 1)
|
|
value_per_unit = 0.4
|
|
composition = list(/datum/material/iron = 2, /datum/material/plasma = 2)
|
|
|
|
/datum/material/alloy/alien/on_applied(atom/source, mat_amount, multiplier, from_slot)
|
|
. = ..()
|
|
if(isobj(source))
|
|
source.AddElement(/datum/element/obj_regen, _rate=0.02) // 2% regen per tick.
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
ADD_TRAIT(source, TRAIT_ROD_LAVA_USABLE, REF(src))
|
|
|
|
/datum/material/alloy/alien/on_removed(atom/source, mat_amount, multiplier, from_slot)
|
|
. = ..()
|
|
if(isobj(source))
|
|
source.RemoveElement(/datum/element/obj_regen, _rate=0.02)
|
|
if(istype(source, /obj/item/fishing_rod))
|
|
REMOVE_TRAIT(source, TRAIT_ROD_LAVA_USABLE, REF(src))
|