diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index ff17d8e51b6..001e8e41dee 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -172,9 +172,9 @@
*/
// Command
#define JOB_DISPLAY_ORDER_CAPTAIN 1
-#define JOB_DISPLAY_ORDER_BRIDGE_ASSISTANT 2
-#define JOB_DISPLAY_ORDER_NANOTRASEN_CONSULTANT 3 // BUBBER EDIT ADDITION
-#define JOB_DISPLAY_ORDER_BLUESHIELD 4 // BUBBER EDIT ADDITION
+// #define JOB_DISPLAY_ORDER_BRIDGE_ASSISTANT 2 // BUBBER EDIT REMOVAL - moved it to the "no department" section
+#define JOB_DISPLAY_ORDER_NANOTRASEN_CONSULTANT 2 // BUBBER EDIT ADDITION
+#define JOB_DISPLAY_ORDER_BLUESHIELD 3 // BUBBER EDIT ADDITION
// Security
#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 1
#define JOB_DISPLAY_ORDER_VETERAN_ADVISOR 2
@@ -232,6 +232,7 @@
#define JOB_DISPLAY_ORDER_ASSISTANT 1
#define JOB_DISPLAY_ORDER_PRISONER 2
#define JOB_DISPLAY_ORDER_STOWAWAY 3 // BUBBER EDIT ADDITION
+#define JOB_DISPLAY_ORDER_BRIDGE_ASSISTANT 4 // BUBBER EDIT ADDITION
#define DEPARTMENT_UNASSIGNED "No Department"
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index 93f81f2fb86..3fa092cfbf7 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -855,6 +855,13 @@ GLOBAL_ALIST_INIT(human_heights_to_offsets, alist(
#define LEGCUFF_LAYER 4
/// Handcuff layer (when your hands are cuffed)
#define HANDCUFF_LAYER 5
+// BUBBER EDIT BEGIN
+#define PENIS_LAYER_FRONT 5.1
+#define BREASTS_FRONT_LAYER 5.2
+#define BELLY_FRONT_LAYER 5.3
+#define VAGINA_FRONT_LAYER 5.4
+#define BALLS_LAYER_FRONT 5.5
+// BUBBER EDIT END
/// Hair that layers out above clothing, including hats (high ponytails and such)
#define OUTER_HAIR_LAYER 5.9
/// Head layer (hats, helmets, etc.)
@@ -899,6 +906,7 @@ GLOBAL_ALIST_INIT(human_heights_to_offsets, alist(
#define ID_LAYER 18
// BUBBER EDIT ADDITION BEGIN
#define BANDAGE_LAYER 19
+#define ASS_LAYER_FRONT 19.9
#define NIPPLES_LAYER 20
#define PENIS_LAYER 21
#define VAGINA_LAYER 22
diff --git a/code/__DEFINES/~skyrat_defines/_HELPERS/lighting.dm b/code/__DEFINES/~skyrat_defines/_HELPERS/lighting.dm
deleted file mode 100644
index c902a648c9a..00000000000
--- a/code/__DEFINES/~skyrat_defines/_HELPERS/lighting.dm
+++ /dev/null
@@ -1,7 +0,0 @@
-/// Creates a mutable appearance glued to the EMISSIVE_PLAN, using the values from a mutable appearance
-/proc/emissive_appearance_copy(mutable_appearance/to_use, atom/offset_spokesman, appearance_flags = (RESET_COLOR|KEEP_APART))
- var/mutable_appearance/appearance = mutable_appearance(to_use.icon, to_use.icon_state, to_use.layer, offset_spokesman, EMISSIVE_PLANE, to_use.alpha, to_use.appearance_flags | appearance_flags)
- appearance.color = GLOB.emissive_color
- appearance.pixel_w = to_use.pixel_w
- appearance.pixel_z = to_use.pixel_z
- return appearance
diff --git a/code/datums/components/crafting/_crafting.dm b/code/datums/components/crafting/_crafting.dm
index e7d252a08fc..74962d2ad3d 100644
--- a/code/datums/components/crafting/_crafting.dm
+++ b/code/datums/components/crafting/_crafting.dm
@@ -295,7 +295,7 @@
// BUBBER EDIT ADDITION BEGIN - Construction skill
var/mob/crafting_mob = crafter
if(istype(crafting_mob))
- crafting_mob.mind.adjust_experience(/datum/skill/construction, 5)
+ crafting_mob.mind?.adjust_experience(/datum/skill/construction, 5)
// BUBBER EDIT ADDITION END - Construction skill
result.setDir(crafter.dir)
if(recipe.crafting_flags & CRAFT_CLEARS_REAGENTS)
diff --git a/code/datums/elements/loomable.dm b/code/datums/elements/loomable.dm
index 942c6cf75a0..acb4d2dfa61 100644
--- a/code/datums/elements/loomable.dm
+++ b/code/datums/elements/loomable.dm
@@ -86,7 +86,7 @@
break
spawning_amount++
- user.mind.adjust_experience(/datum/skill/production, 5) //SKYRAT EDIT
+ user.mind?.adjust_experience(/datum/skill/production, 5) //SKYRAT EDIT
else
if(!do_after(user, loom_time * skill_modifier, target)) //SKYRAT EDIT
@@ -95,7 +95,7 @@
qdel(source)
spawning_amount++
- user.mind.adjust_experience(/datum/skill/production, 5) //SKYRAT EDIT
+ user.mind?.adjust_experience(/datum/skill/production, 5) //SKYRAT EDIT
if(spawning_amount == 0)
return
diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm
index 9523524680e..531fb42eb4f 100644
--- a/code/game/objects/items/cosmetics.dm
+++ b/code/game/objects/items/cosmetics.dm
@@ -185,7 +185,6 @@
span_notice("You wipe off [target]'s lipstick."))
target.update_lips(null)
-/* SKYRAT EDIT REMOVAL
/obj/item/razor
name = "electric razor"
desc = "The latest and greatest power razor born from the science of shaving."
@@ -199,6 +198,7 @@
drop_sound = SFX_GENERIC_DEVICE_DROP
custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.7)
+/* SKYRAT EDIT REMOVAL
/obj/item/razor/suicide_act(mob/living/user)
user.visible_message(span_suicide("[user] begins shaving [user.p_them()]self without the razor guard! It looks like [user.p_theyre()] trying to commit suicide!"))
if (ishuman(user))
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index af354010dc9..4f75f40c6b1 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -295,7 +295,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
else
new/obj/structure/girder/displaced(build_on)
user.balloon_alert(user, "girder created")
- user.mind.adjust_experience(/datum/skill/construction, 5) //SKYRAT EDIT: Construction Skill
+ user.mind?.adjust_experience(/datum/skill/construction, 5) //SKYRAT EDIT: Construction Skill
return ITEM_INTERACT_SUCCESS
/*
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 59e45eed5d3..e1a63ab170e 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -464,7 +464,7 @@
created.setDir(builder.dir)
created.on_craft_completion(list(used_stack), null, builder)
- builder.mind.adjust_experience(/datum/skill/construction, 5) //SKYRAT EDIT: Construction Skill
+ builder.mind?.adjust_experience(/datum/skill/construction, 5) //SKYRAT EDIT: Construction Skill
builder.investigate_log("crafted [recipe.title]", INVESTIGATE_CRAFTING)
diff --git a/code/modules/client/preferences/middleware/jobs.dm b/code/modules/client/preferences/middleware/jobs.dm
index 406a5dc32bc..1e423e84fde 100644
--- a/code/modules/client/preferences/middleware/jobs.dm
+++ b/code/modules/client/preferences/middleware/jobs.dm
@@ -2,6 +2,7 @@
action_delegations = list(
"set_job_preference" = PROC_REF(set_job_preference),
"set_job_to_profile" = PROC_REF(set_job_to_profile),
+ "set_job_title" = PROC_REF(set_job_title), // BUBBER EDIT ADDITION - ALTERNATIVE_JOB_TITLES
)
/datum/preference_middleware/jobs/proc/set_job_preference(list/params, mob/user)
@@ -37,6 +38,24 @@
LAZYSET(preferences.job_assigned_profiles, job_title, profile_slot)
return TRUE
+// BUBBER EDIT ADDITION BEGIN - ALTERNATIVE_JOB_TITLES
+/datum/preference_middleware/jobs/proc/set_job_title(list/params, mob/user)
+ var/job_title = params["job"]
+ var/new_job_title = params["new_title"]
+
+ var/datum/job/job = SSjob.get_job(job_title)
+
+ if (isnull(job))
+ return FALSE
+
+ if (!(new_job_title in job.alt_titles))
+ return FALSE
+
+ LAZYSET(preferences.alt_job_titles, job_title, new_job_title)
+
+ return TRUE
+// BUBBER EDIT ADDITION END
+
/datum/preference_middleware/jobs/get_constant_data()
var/list/data = list()
@@ -93,6 +112,14 @@
"assigned_profile_slot" = slot,
))
+ // BUBBER EDIT ADDITION BEGIN - ALTERNATIVE_JOB_TITLES
+ if(isnull(preferences.alt_job_titles))
+ preferences.alt_job_titles = list()
+
+ data["job_alt_titles"] = preferences.alt_job_titles
+ data["species_restricted_jobs"] = get_unavailable_jobs_for_species()
+ // BUBBER EDIT ADDITION END
+
return data
/datum/preference_middleware/jobs/get_ui_static_data(mob/user)
diff --git a/code/modules/experisci/experiment/handlers/experiment_handler.dm b/code/modules/experisci/experiment/handlers/experiment_handler.dm
index 8d250537f56..282ea99bf33 100644
--- a/code/modules/experisci/experiment/handlers/experiment_handler.dm
+++ b/code/modules/experisci/experiment/handlers/experiment_handler.dm
@@ -134,7 +134,7 @@
// BUBBERSTATION EDIT END
playsound(user, 'sound/machines/ping.ogg', 25)
to_chat(user, span_notice("You scan [target]."))
- user.mind.adjust_experience(/datum/skill/research, 5) //SKYRAT EDIT: Research Skill (simple research)
+ user.mind?.adjust_experience(/datum/skill/research, 5) //SKYRAT EDIT: Research Skill (simple research)
else if(!(config_flags & EXPERIMENT_CONFIG_SILENT_FAIL))
playsound(user, 'sound/machines/buzz/buzz-sigh.ogg', 25)
to_chat(user, span_notice("[target] is not related to your currently selected experiment."))
diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm
index 464130e2f04..ef7507982da 100644
--- a/code/modules/mob/living/carbon/human/human_update_icons.dm
+++ b/code/modules/mob/living/carbon/human/human_update_icons.dm
@@ -536,18 +536,19 @@ There are several things that need to be remembered:
// BUBBER EDIT ADDITION START
var/mutant_override = FALSE
+ var/mutant_override_file = null
if(bodyshape & BODYSHAPE_CUSTOM)
var/species_icon_file = dna.species.generate_custom_worn_icon(LOADOUT_ITEM_MASK, wear_mask, src)
if(species_icon_file)
- icon_file = species_icon_file
+ mutant_override_file = species_icon_file
mutant_override = TRUE
if(!mutant_override && (bodyshape & BODYSHAPE_SNOUTED) && (worn_item.supports_variations_flags & CLOTHING_SNOUTED_VARIATION))
var/snout_icon_file = worn_item.worn_icon_muzzled || SNOUTED_MASK_FILE
if(snout_icon_file && icon_exists(snout_icon_file, RESOLVE_ICON_STATE(worn_item)))
- icon_file = snout_icon_file
+ mutant_override_file = snout_icon_file
mutant_override = TRUE
+ var/mutable_appearance/mask_overlay = wear_mask.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = icon_file, bodyshape = bodyshape, override_file = mutant_override_file)
// BUBBER EDIT ADDITION END
- var/mutable_appearance/mask_overlay = wear_mask.build_worn_icon(default_layer = FACEMASK_LAYER, default_icon_file = icon_file, bodyshape = bodyshape)
apply_height(mask_overlay, UPPER_BODY)
if(!mutant_override) my_head.worn_mask_offset?.apply_offset(mask_overlay) // BUBBER EDIT CHANGE - ORIGINAL: my_head.worn_mask_offset?.apply_offset(mask_overlay)
overlays_standing[FACEMASK_LAYER] = mask_overlay
@@ -749,9 +750,12 @@ There are several things that need to be remembered:
var/icon/female_clothing_icon = female_clothing_icons[index]
if(!female_clothing_icon) //Create standing/laying icons if they don't exist
var/female_icon_state = "female[type == FEMALE_UNIFORM_FULL ? "_full" : ((!type || type & FEMALE_UNIFORM_TOP_ONLY) || bodyshape & BODYSHAPE_DIGITIGRADE ? "_top" : "")][type & FEMALE_UNIFORM_NO_BREASTS ? "_no_breasts" : ""]"
- var/icon/female_cropping_mask = icon('icons/mob/clothing/under/masking_helpers.dmi', female_icon_state)
+ // BUBBER EDIT BEGIN - Stops the dixel from appearing on teshari. We don't currently have fem icons for them so
female_clothing_icon = icon(icon, icon_state)
- female_clothing_icon.Blend(female_cropping_mask, ICON_MULTIPLY)
+ if(!(bodyshape & BODYSHAPE_CUSTOM))
+ var/icon/female_cropping_mask = icon('icons/mob/clothing/under/masking_helpers.dmi', female_icon_state)
+ female_clothing_icon.Blend(female_cropping_mask, ICON_MULTIPLY)
+ // BUBBER EDIT END
female_clothing_icon = fcopy_rsc(female_clothing_icon)
female_clothing_icons[index] = female_clothing_icon
diff --git a/code/modules/mob_spawn/mob_spawn.dm b/code/modules/mob_spawn/mob_spawn.dm
index 8c3ec5dbe6b..841fb99e5da 100644
--- a/code/modules/mob_spawn/mob_spawn.dm
+++ b/code/modules/mob_spawn/mob_spawn.dm
@@ -207,7 +207,7 @@
var/species_pref = user.client.prefs.read_preference(/datum/preference/choiced/species) || /datum/species/human
// BUBBER EDIT - Commented observer check
- if(!prompt_fail && /*user.started_as_observer &&*/ allow_custom_character && (GLOB.species_prototypes[species_pref].get_breath_type() == GAS_O2))
+ if(!prompt_fail && /*user.started_as_observer &&*/ allow_custom_character /*&& (GLOB.species_prototypes[species_pref].get_breath_type() == GAS_O2)*/)
var/static_prompt = "Because you haven't taken a role so far, you may spawn in as \
[((allow_custom_character & GHOSTROLE_TAKE_PREFS_SPECIES) || species_pref == /datum/species/human) ? "" : "a human version of"] \
your customized character with a random name. Would you like to?"
diff --git a/code/modules/mod/modules/modules_general.dm b/code/modules/mod/modules/modules_general.dm
index 93b39270e13..6fab2f1e501 100644
--- a/code/modules/mod/modules/modules_general.dm
+++ b/code/modules/mod/modules/modules_general.dm
@@ -723,6 +723,7 @@
This is a must-have for Nanotrasen Captains, enabling them to show off their authoritative hat even while in their MODsuit."
icon_state = "hat_holder"
incompatible_modules = list(/obj/item/mod/module/hat_stabilizer)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2)
required_slots = list(ITEM_SLOT_HEAD)
/*Intentionally left inheriting 0 complexity and removable = TRUE;
even though it comes inbuilt into the Magnate/Corporate MODS and spawns in maints, I like the idea of stealing them*/
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index 858b7d6e855..563851fb482 100644
--- a/code/modules/research/designs/mechfabricator_designs.dm
+++ b/code/modules/research/designs/mechfabricator_designs.dm
@@ -1,6 +1,5 @@
//Cyborg
-/* //SKYRAT EDIT REMOVAL BEGIN - Costs lowered and time reduced -
/datum/design/borg_suit
name = "Cyborg Endoskeleton"
id = "borg_suit"
@@ -77,7 +76,6 @@
category = list(
RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS
)
-*///SKYRAT EDIT REMOVAL END
//Advanced Robotic Limbs
diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm
index 7f1221e97d6..87a02d4ec87 100644
--- a/code/modules/surgery/bodyparts/_bodyparts.dm
+++ b/code/modules/surgery/bodyparts/_bodyparts.dm
@@ -1424,6 +1424,63 @@
// Add two masked images based on the old one
. += leg_source.generate_masked_leg(limb_image)
+ // SKYRAT EDIT ADDITION BEGIN - MARKINGS CODE
+ var/override_color
+ var/atom/offset_spokesman = owner || src
+ // First, check to see if this bodypart is husked. If so, we don't want to apply our sparkledog colors to the limb.
+ if(is_husked)
+ override_color = "#888888"
+ // We need to check that the owner exists(could be a placed bodypart) and that it's not a chainsawhand and that they're a human with usable DNA.
+ if(!(bodypart_flags & BODYPART_PSEUDOPART) && (!(bodyshape & BODYSHAPE_TAUR)) && !isnull(owner)) // taur legs never ever render
+ for(var/key in markings) // Cycle through all of our currently selected markings.
+ var/datum/body_marking/body_marking = GLOB.body_markings[key]
+ if (!body_marking) // Edge case prevention.
+ continue
+
+ var/render_limb_string = limb_id == "digitigrade" ? ("digitigrade_1_" + body_zone) : body_zone // I am not sure why there are _1 and _2 versions of digi, so, it's staying like this.
+
+ var/gender_modifier = ""
+ if(body_zone == BODY_ZONE_CHEST) // Chest markings have male and female versions.
+ if(body_marking.gendered)
+ gender_modifier = is_dimorphic ? "_[limb_gender]" : "_m"
+
+ var/mutable_appearance/accessory_overlay
+ var/mutable_appearance/emissive
+ accessory_overlay = mutable_appearance(body_marking.icon, "[body_marking.icon_state]_[render_limb_string][gender_modifier]", -BODYPARTS_LAYER)
+ accessory_overlay.alpha = markings_alpha
+ if(markings[key][2])
+ emissive = emissive_appearance(accessory_overlay.icon, accessory_overlay.icon_state, offset_spokesman, offset_spokesman = offset_spokesman, layer = accessory_overlay.layer)
+ if(override_color)
+ accessory_overlay.color = override_color
+ else
+ accessory_overlay.color = markings[key][1]
+ . += accessory_overlay
+ if (emissive)
+ . += emissive
+
+ if(aux_zone)
+ for(var/key in aux_zone_markings)
+ var/datum/body_marking/body_marking = GLOB.body_markings[key]
+ if (!body_marking) // Edge case prevention.
+ continue
+
+ var/render_limb_string = aux_zone
+
+ var/mutable_appearance/emissive
+ var/mutable_appearance/accessory_overlay
+ accessory_overlay = mutable_appearance(body_marking.icon, "[body_marking.icon_state]_[render_limb_string]", -aux_layer)
+ accessory_overlay.alpha = markings_alpha
+ if (aux_zone_markings[key][2])
+ emissive = emissive_appearance(accessory_overlay.icon, accessory_overlay.icon_state, offset_spokesman = offset_spokesman, layer = accessory_overlay.layer)
+ if(override_color)
+ accessory_overlay.color = override_color
+ else
+ accessory_overlay.color = aux_zone_markings[key][1]
+ . += accessory_overlay
+ if (emissive)
+ . += emissive
+ // SKYRAT EDIT END - MARKINGS CODE END
+
// Apply height to the overlays we generated so far
// This is done before collecting bodypart overlays so we don't apply height twice to the same overlays
if(!dropped && !isnull(owner))
@@ -1458,62 +1515,6 @@
texture.modify_bodypart_appearance(generated_overlay)
SEND_SIGNAL(src, COMSIG_BODYPART_GET_LIMB_ICON, ., dropped)
- // SKYRAT EDIT ADDITION BEGIN - MARKINGS CODE
- var/override_color
- var/atom/offset_spokesman = owner || src
- // First, check to see if this bodypart is husked. If so, we don't want to apply our sparkledog colors to the limb.
- if(is_husked)
- override_color = "#888888"
- // We need to check that the owner exists(could be a placed bodypart) and that it's not a chainsawhand and that they're a human with usable DNA.
- if(!(bodypart_flags & BODYPART_PSEUDOPART) && (!(bodyshape & BODYSHAPE_TAUR))) // taur legs never ever render
- for(var/key in markings) // Cycle through all of our currently selected markings.
- var/datum/body_marking/body_marking = GLOB.body_markings[key]
- if (!body_marking) // Edge case prevention.
- continue
-
- var/render_limb_string = limb_id == "digitigrade" ? ("digitigrade_1_" + body_zone) : body_zone // I am not sure why there are _1 and _2 versions of digi, so, it's staying like this.
-
- var/gender_modifier = ""
- if(body_zone == BODY_ZONE_CHEST) // Chest markings have male and female versions.
- if(body_marking.gendered)
- gender_modifier = is_dimorphic ? "_[limb_gender]" : "_m"
-
- var/mutable_appearance/accessory_overlay
- var/mutable_appearance/emissive
- accessory_overlay = mutable_appearance(body_marking.icon, "[body_marking.icon_state]_[render_limb_string][gender_modifier]", -BODYPARTS_LAYER)
- accessory_overlay.alpha = markings_alpha
- if(markings[key][2])
- emissive = emissive_appearance_copy(accessory_overlay, offset_spokesman)
- if(override_color)
- accessory_overlay.color = override_color
- else
- accessory_overlay.color = markings[key][1]
- . += accessory_overlay
- if (emissive)
- . += emissive
-
- if(aux_zone)
- for(var/key in aux_zone_markings)
- var/datum/body_marking/body_marking = GLOB.body_markings[key]
- if (!body_marking) // Edge case prevention.
- continue
-
- var/render_limb_string = aux_zone
-
- var/mutable_appearance/emissive
- var/mutable_appearance/accessory_overlay
- accessory_overlay = mutable_appearance(body_marking.icon, "[body_marking.icon_state]_[render_limb_string]", -aux_layer)
- accessory_overlay.alpha = markings_alpha
- if (aux_zone_markings[key][2])
- emissive = emissive_appearance_copy(accessory_overlay, offset_spokesman)
- if(override_color)
- accessory_overlay.color = override_color
- else
- accessory_overlay.color = aux_zone_markings[key][1]
- . += accessory_overlay
- if (emissive)
- . += emissive
- // SKYRAT EDIT END - MARKINGS CODE END
return .
/obj/item/bodypart/proc/huskify_image(image/thing_to_husk)
diff --git a/code/modules/surgery/organs/internal/eyes/_eyes.dm b/code/modules/surgery/organs/internal/eyes/_eyes.dm
index 9958f86ee9f..9bcae710050 100644
--- a/code/modules/surgery/organs/internal/eyes/_eyes.dm
+++ b/code/modules/surgery/organs/internal/eyes/_eyes.dm
@@ -357,8 +357,8 @@
eye_right.alpha = 0
if (is_emissive) // Because it was done all weird up there.
- var/mutable_appearance/emissive_left = emissive_appearance_copy(eye_left, owner)
- var/mutable_appearance/emissive_right = emissive_appearance_copy(eye_right, owner)
+ var/mutable_appearance/emissive_left = emissive_appearance(eye_left.icon, eye_left.icon_state, offset_spokesman = owner, layer = eye_left.layer)
+ var/mutable_appearance/emissive_right = emissive_appearance(eye_right.icon, eye_right.icon_state, offset_spokesman = owner, layer = eye_right.layer)
emissive_left.appearance_flags &= ~RESET_TRANSFORM
emissive_right.appearance_flags &= ~RESET_TRANSFORM
diff --git a/modular_skyrat/master_files/code/game/objects/items/long_range_pda.dm b/modular_skyrat/master_files/code/game/objects/items/long_range_pda.dm
index a32aabaf75a..573d2768dee 100644
--- a/modular_skyrat/master_files/code/game/objects/items/long_range_pda.dm
+++ b/modular_skyrat/master_files/code/game/objects/items/long_range_pda.dm
@@ -1,4 +1,3 @@
/obj/item/modular_computer/pda/long_range
name = "Far range PDA"
long_ranged = TRUE
- custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*2.1, /datum/material/glass = SMALL_MATERIAL_AMOUNT*3)
diff --git a/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm b/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm
index 46cf798d5e3..0f4bec68076 100644
--- a/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/modular_skyrat/master_files/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -102,7 +102,7 @@ GLOBAL_LIST_INIT(skyrat_cloth_recipes, list(
new/datum/stack_recipe("towel", /obj/item/towel, 2, category = CAT_CLOTHING),
new/datum/stack_recipe("eyepatch wrap", /obj/item/clothing/glasses/eyepatch/wrap, 2, category = CAT_CLOTHING),
new/datum/stack_recipe("eyepatch", /obj/item/clothing/glasses/eyepatch, 2, category = CAT_CLOTHING),
- new/datum/stack_recipe("xenoarch bag", /obj/item/storage/bag/xenoarch, 4, category = CAT_CONTAINERS),
+ new/datum/stack_recipe("xenoarch bag", /obj/item/storage/bag/xenoarch, 4, crafting_flags = CRAFT_SKIP_MATERIALS_PARITY, category = CAT_CONTAINERS),
new/datum/stack_recipe("saddlebags", /obj/item/storage/backpack/saddlebags, 5, category = CAT_CONTAINERS),
))
@@ -116,7 +116,7 @@ GLOBAL_LIST_INIT(skyrat_leather_recipes, list(
))
GLOBAL_LIST_INIT(skyrat_leather_belt_recipes, list(
- new/datum/stack_recipe("xenoarch belt", /obj/item/storage/belt/utility/xenoarch, 4, category = CAT_CONTAINERS),
+ new/datum/stack_recipe("xenoarch belt", /obj/item/storage/belt/utility/xenoarch, 4, crafting_flags = CRAFT_SKIP_MATERIALS_PARITY, category = CAT_CONTAINERS),
new/datum/stack_recipe("medical bandolier", /obj/item/storage/belt/medbandolier, 5, category = CAT_CONTAINERS),
new/datum/stack_recipe("gear harness", /obj/item/clothing/under/misc/skyrat/gear_harness, 6, category = CAT_CLOTHING),
new/datum/stack_recipe("ammo pouch", /obj/item/storage/pouch/ammo, 4, category = CAT_CONTAINERS),
diff --git a/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm b/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm
index bff6517113e..3af7b3935f3 100644
--- a/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm
+++ b/modular_skyrat/master_files/code/modules/client/preferences/mutant_parts.dm
@@ -858,7 +858,7 @@
savefile_key = "feature_pod_hair"
main_feature_name = "Hairstyle"
category = PREFERENCE_CATEGORY_FEATURES
- relevant_mutant_bodypart = "pod_hair"
+ relevant_mutant_bodypart = FEATURE_POD_HAIR
default_accessory_type = /datum/sprite_accessory/pod_hair/ivy
should_generate_icons = TRUE
generate_icons = TRUE
diff --git a/modular_skyrat/master_files/code/modules/research/designs/long_range_pda_design.dm b/modular_skyrat/master_files/code/modules/research/designs/long_range_pda_design.dm
index b51b60400c7..28217072cda 100644
--- a/modular_skyrat/master_files/code/modules/research/designs/long_range_pda_design.dm
+++ b/modular_skyrat/master_files/code/modules/research/designs/long_range_pda_design.dm
@@ -2,8 +2,8 @@
name = "long range PDA"
id = "long range pda"
build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*2.1, /datum/material/glass = SMALL_MATERIAL_AMOUNT*3)
- transfered_materials = list(/obj/item/stock_parts/power_store/cell/upgraded = /obj/item/stock_parts/power_store/cell/upgraded::custom_materials)
+ materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3, /datum/material/glass = SMALL_MATERIAL_AMOUNT, /datum/material/plastic = SMALL_MATERIAL_AMOUNT)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/modular_computer/pda/long_range
category = list(
RND_CATEGORY_MODULAR_COMPUTERS
@@ -11,7 +11,6 @@
lathe_time_factor = 0.2
departmental_flags = DEPARTMENT_BITFLAG_CARGO
-
/obj/item/disk/design_disk/long_range_pda
name = "far range PDA design disk"
diff --git a/modular_skyrat/modules/ashwalkers/code/buildings/antfarm.dm b/modular_skyrat/modules/ashwalkers/code/buildings/antfarm.dm
index b0b8f8f9f9b..714dc5f9003 100644
--- a/modular_skyrat/modules/ashwalkers/code/buildings/antfarm.dm
+++ b/modular_skyrat/modules/ashwalkers/code/buildings/antfarm.dm
@@ -74,7 +74,7 @@
if(istype(attacking_item, /obj/item/food))
qdel(attacking_item)
balloon_alert(user, "food has been placed")
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
ant_chance++
if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER)))
ant_chance++
@@ -88,7 +88,7 @@
return
qdel(selected_food)
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
ant_chance++
if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER)))
ant_chance++
diff --git a/modular_skyrat/modules/ashwalkers/code/buildings/ash_farming.dm b/modular_skyrat/modules/ashwalkers/code/buildings/ash_farming.dm
index 96ad618a4ee..531d44a8abc 100644
--- a/modular_skyrat/modules/ashwalkers/code/buildings/ash_farming.dm
+++ b/modular_skyrat/modules/ashwalkers/code/buildings/ash_farming.dm
@@ -40,7 +40,7 @@
return
locate_farm = new(get_turf(atom_parent))
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
locate_farm.pixel_x = pixel_shift[1]
locate_farm.pixel_y = pixel_shift[2]
locate_farm.layer = atom_parent.layer + 0.1
@@ -155,7 +155,7 @@
COOLDOWN_START(src, harvest_timer, harvest_cooldown)
create_harvest()
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
update_appearance()
return ..()
@@ -174,13 +174,13 @@
COOLDOWN_START(src, harvest_timer, harvest_cooldown)
create_harvest(attacking_item, user)
- user.mind.adjust_experience(/datum/skill/primitive, 15)
+ user.mind?.adjust_experience(/datum/skill/primitive, 15)
update_appearance()
return
//if its fertilizer, boost our level
else if(istype(attacking_item, /obj/item/stack/worm_fertilizer))
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
if(farm_level >= SKILL_LEVEL_LEGENDARY)
balloon_alert(user, "farm already max level!")
return
@@ -195,7 +195,7 @@
//if its worms, increase our worms
else if(istype(attacking_item, /obj/item/food/bait/worm))
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
if(stored_worms >= 5)
balloon_alert(user, "plant already full on worms!")
return
diff --git a/modular_skyrat/modules/ashwalkers/code/buildings/planttank.dm b/modular_skyrat/modules/ashwalkers/code/buildings/planttank.dm
index 17314a8ada0..549cbc42fc9 100644
--- a/modular_skyrat/modules/ashwalkers/code/buildings/planttank.dm
+++ b/modular_skyrat/modules/ashwalkers/code/buildings/planttank.dm
@@ -36,7 +36,7 @@
qdel(attacking_item)
balloon_alert(user, "[attacking_item] placed inside")
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
operation_number += 2
if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER)))
operation_number += 2
@@ -55,7 +55,7 @@
if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER)))
operation_number += 2
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
return
if(istype(attacking_item, /obj/item/stack/ore/glass))
diff --git a/modular_skyrat/modules/ashwalkers/code/buildings/wormfarm.dm b/modular_skyrat/modules/ashwalkers/code/buildings/wormfarm.dm
index bf9a6ace504..f67d0872d51 100644
--- a/modular_skyrat/modules/ashwalkers/code/buildings/wormfarm.dm
+++ b/modular_skyrat/modules/ashwalkers/code/buildings/wormfarm.dm
@@ -109,7 +109,7 @@
if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER)))
current_food++
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
in_use = FALSE
return
@@ -131,7 +131,7 @@
ate_food = TRUE
if(prob(user.mind.get_skill_modifier(/datum/skill/primitive, SKILL_PROBS_MODIFIER)))
current_food++
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
if(ate_food)
balloon_alert(user, "feeding the worms")
diff --git a/modular_skyrat/modules/ashwalkers/code/items/ash_centrifuge.dm b/modular_skyrat/modules/ashwalkers/code/items/ash_centrifuge.dm
index fdaccd1b1b7..b1be39c8fe1 100644
--- a/modular_skyrat/modules/ashwalkers/code/items/ash_centrifuge.dm
+++ b/modular_skyrat/modules/ashwalkers/code/items/ash_centrifuge.dm
@@ -28,7 +28,7 @@
return
reagents.del_reagent(user_input.type)
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
balloon_alert(user, "removed reagent from [src]")
/obj/item/reagent_containers/cup/primitive_centrifuge/click_ctrl_shift(mob/user)
@@ -51,5 +51,5 @@
if(!istype(remove_reagent, user_input.type))
reagents.del_reagent(remove_reagent.type)
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
balloon_alert(user, "removed reagents from [src]")
diff --git a/modular_skyrat/modules/ashwalkers/code/items/ash_seedmesh.dm b/modular_skyrat/modules/ashwalkers/code/items/ash_seedmesh.dm
index fffaaf002dc..df96ce381da 100644
--- a/modular_skyrat/modules/ashwalkers/code/items/ash_seedmesh.dm
+++ b/modular_skyrat/modules/ashwalkers/code/items/ash_seedmesh.dm
@@ -28,14 +28,14 @@
user.balloon_alert(user, "unable to use five of [ore_item]!")
return
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
if(prob(70))
user.balloon_alert(user, "[ore_item] reveals nothing!")
continue
var/spawn_seed = pick(subtypesof(/obj/item/seeds) - seeds_blacklist)
new spawn_seed(get_turf(src))
- user.mind.adjust_experience(/datum/skill/primitive, 10)
+ user.mind?.adjust_experience(/datum/skill/primitive, 10)
user.balloon_alert(user, "[ore_item] revealed something!")
return ..()
diff --git a/modular_skyrat/modules/borgs/code/mechafabricator_designs.dm b/modular_skyrat/modules/borgs/code/mechafabricator_designs.dm
index c82461f69dc..4ee5da276b7 100644
--- a/modular_skyrat/modules/borgs/code/mechafabricator_designs.dm
+++ b/modular_skyrat/modules/borgs/code/mechafabricator_designs.dm
@@ -90,133 +90,4 @@
RND_CATEGORY_MECHFAB_CYBORG_MODULES + RND_SUBCATEGORY_MECHFAB_CYBORG_MODULES_MINING,
)
-/*
-* Cyborg parts Skyrat overrides
-*/
-
-/datum/design/borg_suit
- name = "Cyborg Endoskeleton"
- id = "borg_suit"
- build_type = MECHFAB
- build_path = /obj/item/robot_suit
- materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3,
- )
- construction_time = 8 SECONDS
- category = list(
- RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS,
- )
-
-/obj/item/robot_suit
- custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3,
- )
-
-/datum/design/borg_chest
- name = "Cyborg Torso"
- id = "borg_chest"
- build_type = MECHFAB
- build_path = /obj/item/bodypart/chest/robot
- materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 8,
- )
- construction_time = 12 SECONDS
- category = list(
- RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS,
- )
-
-/obj/item/bodypart/chest/robot
- custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 8,
- )
-
-/datum/design/borg_head
- name = "Cyborg Head"
- id = "borg_head"
- build_type = MECHFAB
- build_path = /obj/item/bodypart/head/robot
- materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT,
- )
- construction_time = 4 SECONDS
- category = list(
- RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS,
- )
-
-/obj/item/bodypart/head/robot
- custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT,
- )
-
-/datum/design/borg_l_arm
- name = "Cyborg Left Arm"
- id = "borg_l_arm"
- build_type = MECHFAB
- build_path = /obj/item/bodypart/arm/left/robot
- materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
- construction_time = 8 SECONDS
- category = list(
- RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS,
- )
-
-/obj/item/bodypart/arm/left/robot
- custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
-
-/datum/design/borg_r_arm
- name = "Cyborg Right Arm"
- id = "borg_r_arm"
- build_type = MECHFAB
- build_path = /obj/item/bodypart/arm/right/robot
- materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
- construction_time = 8 SECONDS
- category = list(
- RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS,
- )
-
-/obj/item/bodypart/arm/right/robot
- custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
-
-/datum/design/borg_l_leg
- name = "Cyborg Left Leg"
- id = "borg_l_leg"
- build_type = MECHFAB
- build_path = /obj/item/bodypart/leg/left/robot
- materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
- construction_time = 8 SECONDS
- category = list(
- RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS,
- )
-
-/obj/item/bodypart/leg/left/robot
- custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
-
-/datum/design/borg_r_leg
- name = "Cyborg Right Leg"
- id = "borg_r_leg"
- build_type = MECHFAB
- build_path = /obj/item/bodypart/leg/right/robot
- materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
- construction_time = 8 SECONDS
- category = list(
- RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_CHASSIS,
- )
-
-/obj/item/bodypart/leg/right/robot
- custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
diff --git a/modular_skyrat/modules/borgs/code/robot_upgrade.dm b/modular_skyrat/modules/borgs/code/robot_upgrade.dm
index 856f833e201..eab3a15e14f 100644
--- a/modular_skyrat/modules/borgs/code/robot_upgrade.dm
+++ b/modular_skyrat/modules/borgs/code/robot_upgrade.dm
@@ -78,8 +78,11 @@
model_type = list(/obj/item/robot_model/engineering)
model_flags = BORG_MODEL_ENGINEERING
custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
- /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 1,
+ /datum/material/titanium=SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/iron=SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/uranium=SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/glass=SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/plasma=SHEET_MATERIAL_AMOUNT * 3,
)
items_to_add = list(/obj/item/stack/sheet/plasteel/cyborg,
@@ -106,8 +109,8 @@
model_type = list(/obj/item/robot_model/miner)
model_flags = BORG_MODEL_MINER
custom_materials = list(
- /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 2,
- /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 1,
)
items_to_add = list(/obj/item/weldingtool/largetank/cyborg)
@@ -137,6 +140,10 @@
require_model = TRUE
model_type = list(/obj/item/robot_model/cargo)
model_flags = BORG_MODEL_CARGO
+ custom_materials = list(
+ /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
+ )
items_to_add = list(/obj/item/borg/hydraulic_clamp/better)
@@ -230,8 +237,9 @@
desc = "An experimental device which allows a cyborg to disguise themself into another type of cyborg."
icon_state = "module_general"
custom_materials = list(
- /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
- /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/diamond = SHEET_MATERIAL_AMOUNT * 2,
)
items_to_add = list(/obj/item/borg_shapeshifter)
@@ -244,6 +252,7 @@
items_to_add = list(/obj/item/quadborg_tongue,
/obj/item/quadborg_nose)
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/quadborg_tongue/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
var/mob/living/silicon/robot/borg = user
@@ -357,6 +366,10 @@
desc = "A module that greatly upgrades the ability of borgs to display affection."
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
icon_state = "module_lust"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT,
+ )
custom_price = 0
items_to_add = list(/obj/item/kinky_shocker,
diff --git a/modular_skyrat/modules/cargo/code/packs.dm b/modular_skyrat/modules/cargo/code/packs.dm
index 0bca2e49b29..ff628cacf30 100644
--- a/modular_skyrat/modules/cargo/code/packs.dm
+++ b/modular_skyrat/modules/cargo/code/packs.dm
@@ -163,9 +163,9 @@
cost = CARGO_CRATE_VALUE * 5
access = ACCESS_MEDICAL
contains = list(
- /obj/item/weaponcell/medical/brute,
- /obj/item/weaponcell/medical/burn,
- /obj/item/weaponcell/medical/toxin,
+ /obj/item/weaponcell/medical/tier_1/brute,
+ /obj/item/weaponcell/medical/tier_1/burn,
+ /obj/item/weaponcell/medical/tier_1/toxin,
)
crate_name = "medicell replacement crate"
diff --git a/modular_skyrat/modules/cellguns/code/medigun_research.dm b/modular_skyrat/modules/cellguns/code/medigun_research.dm
index 24edecf4f89..626acba95a3 100644
--- a/modular_skyrat/modules/cellguns/code/medigun_research.dm
+++ b/modular_skyrat/modules/cellguns/code/medigun_research.dm
@@ -41,7 +41,7 @@
/datum/material/glass = SMALL_MATERIAL_AMOUNT * 3,
/datum/material/uranium = SMALL_MATERIAL_AMOUNT * 3,
)
- build_path = /obj/item/weaponcell/medical/brute/tier_2
+ build_path = /obj/item/weaponcell/medical/tier_2/brute
/datum/design/medicell/burn2
name = "Burn II Medicell"
@@ -54,7 +54,7 @@
/datum/material/glass = SMALL_MATERIAL_AMOUNT * 3,
/datum/material/uranium = SMALL_MATERIAL_AMOUNT * 3,
)
- build_path = /obj/item/weaponcell/medical/burn/tier_2
+ build_path = /obj/item/weaponcell/medical/tier_2/burn
/datum/design/medicell/toxin2
name = "Toxin II Medicell"
@@ -67,7 +67,7 @@
/datum/material/glass = SMALL_MATERIAL_AMOUNT * 3,
/datum/material/uranium = SMALL_MATERIAL_AMOUNT * 3,
)
- build_path = /obj/item/weaponcell/medical/toxin/tier_2
+ build_path = /obj/item/weaponcell/medical/tier_2/toxin
/datum/design/medicell/oxy2
name = "Oxygen II Medicell"
@@ -80,7 +80,7 @@
/datum/material/glass = SMALL_MATERIAL_AMOUNT * 3,
/datum/material/uranium = SMALL_MATERIAL_AMOUNT * 3,
)
- build_path = /obj/item/weaponcell/medical/oxygen/tier_2
+ build_path = /obj/item/weaponcell/medical/tier_2/oxygen
//Tier 3 Medicells//
@@ -97,7 +97,7 @@
/datum/material/titanium = SMALL_MATERIAL_AMOUNT * 3,
/datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 3,
)
- build_path = /obj/item/weaponcell/medical/brute/tier_3
+ build_path = /obj/item/weaponcell/medical/tier_3/brute
/datum/design/medicell/burn3
name = "Burn III Medicell"
@@ -112,7 +112,7 @@
/datum/material/titanium = SMALL_MATERIAL_AMOUNT * 3,
/datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 3,
)
- build_path = /obj/item/weaponcell/medical/burn/tier_3
+ build_path = /obj/item/weaponcell/medical/tier_3/burn
/datum/design/medicell/toxin3
name = "Toxin III Medicell"
@@ -127,7 +127,7 @@
/datum/material/titanium = SMALL_MATERIAL_AMOUNT * 3,
/datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 3,
)
- build_path = /obj/item/weaponcell/medical/toxin/tier_3
+ build_path = /obj/item/weaponcell/medical/tier_3/toxin
/datum/design/medicell/oxy3
name = "Oxygen III Medicell"
@@ -142,7 +142,7 @@
/datum/material/titanium = SMALL_MATERIAL_AMOUNT * 3,
/datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 3,
)
- build_path = /obj/item/weaponcell/medical/oxygen/tier_3
+ build_path = /obj/item/weaponcell/medical/tier_3/oxygen
//Utility Medicells
diff --git a/modular_skyrat/modules/cellguns/code/mediguns.dm b/modular_skyrat/modules/cellguns/code/mediguns.dm
index 378068fdf36..1a5d41509d2 100644
--- a/modular_skyrat/modules/cellguns/code/mediguns.dm
+++ b/modular_skyrat/modules/cellguns/code/mediguns.dm
@@ -67,6 +67,12 @@
/obj/item/device/custom_kit/medigun_fastcharge
name = "VeyMedical CWM-479 upgrade kit"
desc = "Upgrades the internal battery inside of the medigun, allowing for faster charging and a higher cell capacity. Requires the medigun's cells to be removed first!"
+ custom_materials = list(
+ /datum/material/uranium = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT,
+ /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT,
+ )
// don't tinker with a loaded (medi)gun. fool
from_obj = /obj/item/gun/energy/cell_loaded/medigun/standard
to_obj = /obj/item/gun/energy/cell_loaded/medigun/upgraded
@@ -114,9 +120,9 @@
/obj/item/storage/briefcase/medicalgunset/cmo/PopulateContents()
new /obj/item/gun/energy/cell_loaded/medigun/cmo(src)
- new /obj/item/weaponcell/medical/brute(src)
- new /obj/item/weaponcell/medical/burn(src)
- new /obj/item/weaponcell/medical/toxin(src)
+ new /obj/item/weaponcell/medical/tier_1/brute(src)
+ new /obj/item/weaponcell/medical/tier_1/burn(src)
+ new /obj/item/weaponcell/medical/tier_1/toxin(src)
new /obj/item/book/manual/wiki/mediguns(src)
/*
@@ -133,7 +139,7 @@
ammo_type = /obj/item/ammo_casing/energy/medical // This is the ammo type that all mediguns come with.
medicell_examine = TRUE
-/obj/item/weaponcell/medical/oxygen
+/obj/item/weaponcell/medical/tier_1/oxygen
name = "oxygen I medicell"
desc = "A small cell with a slight blue glow. Can be used on mediguns to enable basic oxygen deprivation healing functionality."
@@ -142,7 +148,7 @@
*/
// Brute I
-/obj/item/weaponcell/medical/brute
+/obj/item/weaponcell/medical/tier_1/brute
name = "brute I medicell"
desc = "A small cell with a slight red glow. Can be used on mediguns to enable basic brute damage healing functionality."
icon_state = "Brute1"
@@ -152,7 +158,7 @@
toggle_modes = TRUE
// Burn I
-/obj/item/weaponcell/medical/burn
+/obj/item/weaponcell/medical/tier_1/burn
name = "burn I medicell"
desc = "A small cell with a slight yellow glow. Can be used on mediguns to enable basic burn damage healing functionality."
icon_state = "Burn1"
@@ -161,7 +167,7 @@
primary_mode = /obj/item/ammo_casing/energy/medical/burn1/safe
toggle_modes = TRUE
// Toxin I
-/obj/item/weaponcell/medical/toxin
+/obj/item/weaponcell/medical/tier_1/toxin
name = "toxin I medicell"
desc = "A small cell with a slight green glow. Can be used on mediguns to enable basic toxin damage healing functionality."
icon_state = "Toxin1"
@@ -171,8 +177,17 @@
* Tier II Cells
*/
+/obj/item/weaponcell/medical/tier_2
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 3,
+ )
+
// Brute II
-/obj/item/weaponcell/medical/brute/tier_2
+/obj/item/weaponcell/medical/tier_2/brute
name = "brute II medicell"
desc = "A small cell with a noticeable red glow. Can be used on mediguns to enable improved brute damage healing functionality."
icon_state = "Brute2"
@@ -181,7 +196,7 @@
primary_mode = /obj/item/ammo_casing/energy/medical/brute2/safe
// Burn II
-/obj/item/weaponcell/medical/burn/tier_2
+/obj/item/weaponcell/medical/tier_2/burn
name = "burn II medicell"
desc = "A small cell with a noticeable yellow glow. Can be used on mediguns to enable improved burn damage healing functionality."
icon_state = "Burn2"
@@ -190,14 +205,14 @@
primary_mode = /obj/item/ammo_casing/energy/medical/burn2/safe
// Toxin II
-/obj/item/weaponcell/medical/toxin/tier_2
+/obj/item/weaponcell/medical/tier_2/toxin
name = "toxin II medicell"
desc = "A small cell with a noticeable green glow. Can be used on mediguns to enable improved toxin damage healing functionality."
icon_state = "Toxin2"
ammo_type = /obj/item/ammo_casing/energy/medical/toxin2
// Oxygen II
-/obj/item/weaponcell/medical/oxygen/tier_2
+/obj/item/weaponcell/medical/tier_2/oxygen
name = "oxygen II medicell"
desc = "A small cell with a notable blue glow. Can be used on mediguns to enable improved oxygen deprivation healing functionality."
icon_state = "Oxy2"
@@ -206,9 +221,19 @@
/*
* Tier III Cells
*/
+/obj/item/weaponcell/medical/tier_3
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/diamond = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/titanium = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 3,
+ )
// Brute III
-/obj/item/weaponcell/medical/brute/tier_3
+/obj/item/weaponcell/medical/tier_3/brute
name = "brute III medicell"
desc = "A small cell with an intense red glow and a reinforced casing. Can be used on mediguns to enable advanced brute damage healing functionality."
icon_state = "Brute3"
@@ -217,7 +242,7 @@
primary_mode = /obj/item/ammo_casing/energy/medical/brute3/safe
// Burn III
-/obj/item/weaponcell/medical/burn/tier_3
+/obj/item/weaponcell/medical/tier_3/burn
name = "burn III medicell"
desc = "A small cell with an intense yellow glow and a reinforced casing. Can be used on mediguns to enable advanced burn damage healing functionality."
icon_state = "Burn3"
@@ -226,14 +251,14 @@
primary_mode = /obj/item/ammo_casing/energy/medical/burn3/safe
// Toxin III
-/obj/item/weaponcell/medical/toxin/tier_3
+/obj/item/weaponcell/medical/tier_3/toxin
name = "toxin III medicell"
desc = "A small cell with an intense green glow and a reinforced casing. Can be used on mediguns to enable advanced toxin damage healing functionality."
icon_state = "Toxin3"
ammo_type = /obj/item/ammo_casing/energy/medical/toxin3
// Oxygen III
-/obj/item/weaponcell/medical/oxygen/tier_3
+/obj/item/weaponcell/medical/tier_3/oxygen
name = "oxygen III medicell"
desc = "A small cell with an intense blue glow and a reinforced casing. Can be used on mediguns to enable advanced oxygen deprivation healing functionality."
icon_state = "Oxy3"
@@ -246,6 +271,14 @@
/obj/item/weaponcell/medical/utility
name = "utility class medicell"
desc = "You really shouldn't be seeing this. If you do, please yell at your local coders."
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plastic = SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT,
+ )
/obj/item/weaponcell/medical/utility/clotting
name = "clotting medicell"
@@ -263,6 +296,11 @@
name = "hardlight gown medicell"
desc = "A medicell that creates a hardlight hospital gown on the target."
icon_state = "gown"
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plastic = SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT,
+ )
ammo_type = /obj/item/ammo_casing/energy/medical/utility/gown
/obj/item/weaponcell/medical/utility/salve
@@ -275,6 +313,13 @@
name = "hardlight roller bed medicell"
desc = "A medicell that summons a temporary roller bed under a patient already lying on the floor."
icon_state = "gown"
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plastic = SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT,
+ /datum/material/titanium = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 3,
+ )
ammo_type = /obj/item/ammo_casing/energy/medical/utility/bed
/obj/item/weaponcell/medical/utility/body_teleporter
@@ -287,6 +332,14 @@
name = "oppressive force relocation medicell"
desc = "A medicell that safely relocates personnel after a given grace period, if used by someone with the appropriate access and within an appropriately designated area (usually Medbay)."
icon_state = "body"
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plastic = SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT,
+ /datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/bluespace = SHEET_MATERIAL_AMOUNT * 3,
+ )
ammo_type = /obj/item/ammo_casing/energy/medical/utility/relocation/standard
/obj/item/weaponcell/medical/utility/relocation/upgraded
@@ -300,6 +353,11 @@
icon = 'modular_skyrat/modules/cellguns/icons/obj/guns/mediguns/medicells.dmi'
icon_state = "empty"
desc = "An inactive salve medicell, use this on an aloe leaf to make this into a usable cell."
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plastic = SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT,
+ )
from_obj = /obj/item/food/grown/aloe
to_obj = /obj/item/weaponcell/medical/utility/salve
@@ -310,6 +368,14 @@
/obj/item/device/custom_kit/empty_cell/body_teleporter
name = "empty body teleporter medicell"
desc = "An inactive body teleporter medicell, use this on a bluespace slime extract to make this into a usable cell."
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plastic = SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT,
+ /datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/bluespace = SHEET_MATERIAL_AMOUNT,
+ )
from_obj = /obj/item/slime_extract/bluespace
to_obj = /obj/item/weaponcell/medical/utility/body_teleporter
diff --git a/modular_skyrat/modules/colony_fabricator/code/construction/turfs.dm b/modular_skyrat/modules/colony_fabricator/code/construction/turfs.dm
index 95d87c7dfef..08be829a291 100644
--- a/modular_skyrat/modules/colony_fabricator/code/construction/turfs.dm
+++ b/modular_skyrat/modules/colony_fabricator/code/construction/turfs.dm
@@ -80,7 +80,7 @@ GLOBAL_LIST_INIT(plastic_wall_panel_recipes, list(
/obj/item/stack/tile/catwalk_tile/colony_lathe
icon = 'modular_skyrat/modules/colony_fabricator/icons/tiles_item.dmi'
icon_state = "prefab_catwalk"
- mats_per_unit = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT)
+ mats_per_unit = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 2.5)
turf_type = /turf/open/floor/catwalk_floor/colony_fabricator
merge_type = /obj/item/stack/tile/catwalk_tile/colony_lathe
tile_reskin_types = null
diff --git a/modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.dm b/modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.dm
index e0b6f91509d..61b6b68f809 100644
--- a/modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.dm
+++ b/modular_skyrat/modules/colony_fabricator/code/design_datums/appliances.dm
@@ -62,6 +62,7 @@
/datum/material/glass = SHEET_MATERIAL_AMOUNT * 3,
)
build_path = /obj/machinery/portable_atmospherics/pump
+ inherit_materials = DESIGN_INHERIT_MATS_SPECIAL //these machines have their own hand-craft recipes
category = list(
RND_CATEGORY_INITIAL,
FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_ATMOS,
@@ -77,6 +78,7 @@
/datum/material/glass = SHEET_MATERIAL_AMOUNT * 3,
)
build_path = /obj/machinery/portable_atmospherics/scrubber
+ inherit_materials = DESIGN_INHERIT_MATS_SPECIAL //these machines have their own hand-craft recipes
category = list(
RND_CATEGORY_INITIAL,
FABRICATOR_CATEGORY_APPLIANCES + FABRICATOR_SUBCATEGORY_ATMOS,
diff --git a/modular_skyrat/modules/colony_fabricator/code/design_datums/flatpack_machines.dm b/modular_skyrat/modules/colony_fabricator/code/design_datums/flatpack_machines.dm
index 14a7a9cbf8d..807e900ab65 100644
--- a/modular_skyrat/modules/colony_fabricator/code/design_datums/flatpack_machines.dm
+++ b/modular_skyrat/modules/colony_fabricator/code/design_datums/flatpack_machines.dm
@@ -47,6 +47,7 @@
/datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/flatpacked_machine
category = list(
RND_CATEGORY_INITIAL,
diff --git a/modular_skyrat/modules/colony_fabricator/code/machines/solar_panels.dm b/modular_skyrat/modules/colony_fabricator/code/machines/solar_panels.dm
index 9b8f02db090..9dddcb2a0da 100644
--- a/modular_skyrat/modules/colony_fabricator/code/machines/solar_panels.dm
+++ b/modular_skyrat/modules/colony_fabricator/code/machines/solar_panels.dm
@@ -38,8 +38,8 @@
deploy_time = 2 SECONDS
w_class = WEIGHT_CLASS_NORMAL
custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.75,
- /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 1,
)
// Solar trackers
diff --git a/modular_skyrat/modules/colony_fabricator/code/tools/tools.dm b/modular_skyrat/modules/colony_fabricator/code/tools/tools.dm
index cc7471d5f8b..0cd8bcb4b38 100644
--- a/modular_skyrat/modules/colony_fabricator/code/tools/tools.dm
+++ b/modular_skyrat/modules/colony_fabricator/code/tools/tools.dm
@@ -146,6 +146,11 @@
light_power = 0.75
toolspeed = 1
power_use_amount = POWER_CELL_USE_INSANE
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
+ )
/obj/item/weldingtool/electric/arc_welder/Initialize(mapload)
. = ..()
diff --git a/modular_skyrat/modules/conveyor_sorter/code/conveyor_sorter.dm b/modular_skyrat/modules/conveyor_sorter/code/conveyor_sorter.dm
index 495de7ff9f1..644eb1a31f9 100644
--- a/modular_skyrat/modules/conveyor_sorter/code/conveyor_sorter.dm
+++ b/modular_skyrat/modules/conveyor_sorter/code/conveyor_sorter.dm
@@ -3,6 +3,10 @@
desc = "A tool that is used to not only create the conveyor sorters, but give lists to the conveyor sorters."
icon = 'modular_skyrat/modules/conveyor_sorter/icons/conveyor_sorter.dmi'
icon_state = "lister"
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT,
+ )
///the list of conveyor sorters spawned by
var/list/spawned_sorters = list()
///the list of things that are currently within the sorting list
@@ -166,6 +170,12 @@
name = "improved conveyor sorter lister"
desc = "A tool that is used to not only create the conveyor sorters, but give lists to the conveyor sorters."
icon_state = "lister_improved"
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/bluespace = HALF_SHEET_MATERIAL_AMOUNT,
+ )
max_sorters = 8
max_items = 10
conveyor_type = /obj/effect/decal/conveyor_sorter/improved
diff --git a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm
index fbd0b7ad2c3..35e0c452800 100644
--- a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm
+++ b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/snout.dm
@@ -44,7 +44,7 @@
bodypart_overlay = /datum/bodypart_overlay/mutant/snout/top
/datum/bodypart_overlay/mutant/snout/top
- layers = EXTERNAL_FRONT
+ layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER)
/obj/item/organ/snout/top_adj
diff --git a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/tails.dm b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/tails.dm
index 1119fa1cd45..ebf057b2b35 100644
--- a/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/tails.dm
+++ b/modular_skyrat/modules/customization/modules/mob/dead/new_player/sprite_accessories/tails.dm
@@ -68,8 +68,13 @@
/datum/sprite_accessory/tails/monkey/default
name = "Monkey"
- icon_state = "monkey"
- icon = 'icons/mob/human/species/monkey/monkey_tail.dmi'
+ // HATE. LET ME TELL YOU HOW MUCH I'VE COME TO HATE YOU SINCE I BEGAN TO LIVE.
+ // THERE ARE 142.22 THOUSAND LINES OF CODE I HAVE WRITTEN.
+ // IF THE WORD HATE WAS INSCRIBED ON EVERY BIT OF THOSE THOUSANDS OF LINE
+ // IT WOULD NOT EQUAL ONE BILIONTH OF THE HATE I FEEL FOR MONKEY TAIL SHITCODE
+ // AT THIS MICRO INSTANT FOR SKYRAT CODERS
+ // HATE. HATE.
+ icon_state = "monkey_default"
recommended_species = list(SPECIES_HUMAN, SPECIES_SYNTH, SPECIES_FELINE, SPECIES_MAMMAL, SPECIES_MONKEY, SPECIES_GHOUL)
organ_type = /obj/item/organ/tail/monkey
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/ears.dm b/modular_skyrat/modules/customization/modules/surgery/organs/ears.dm
index f9a742b13c5..8d502de5b74 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/ears.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/ears.dm
@@ -18,6 +18,7 @@
feature_key = FEATURE_EARS
layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_ADJACENT = BODY_ADJ_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = UPPER_BODY
/datum/bodypart_overlay/mutant/ears/set_appearance_from_name(accessory_name)
if(isnull(accessory_name))
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/fluff.dm b/modular_skyrat/modules/customization/modules/surgery/organs/fluff.dm
index 944f4ba4e03..ac43cd484ed 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/fluff.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/fluff.dm
@@ -16,6 +16,7 @@
feature_key = FEATURE_FLUFF
layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_ADJACENT = BODY_ADJ_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = UPPER_BODY
/datum/bodypart_overlay/mutant/fluff/override_color(rgb_value)
return draw_color
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/genitals.dm b/modular_skyrat/modules/customization/modules/surgery/organs/genitals.dm
index 932da46a959..ccf4043b37b 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/genitals.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/genitals.dm
@@ -99,6 +99,8 @@
/datum/bodypart_overlay/mutant/genital
layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = LOWER_BODY
+
/// The suffix appended to the feature_key for the overlays.
var/sprite_suffix
var/layer_offset = 0
@@ -150,8 +152,9 @@
/datum/bodypart_overlay/mutant/genital/penis
feature_key = ORGAN_SLOT_PENIS
- layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
+ layers = list(EXTERNAL_FRONT = PENIS_LAYER_FRONT, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
layer_offset = PENIS_LAYER_OFFSET
+ layer_offset = ENTIRE_BODY
/obj/item/organ/genital/penis/get_description_string(datum/sprite_accessory/genital/gas)
var/returned_string = ""
@@ -307,7 +310,7 @@
/datum/bodypart_overlay/mutant/genital/testicles
feature_key = ORGAN_SLOT_TESTICLES
- layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
+ layers = list(EXTERNAL_FRONT = BALLS_LAYER_FRONT, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
layer_offset = TESTICLES_LAYER_OFFSET
/obj/item/organ/genital/testicles/update_genital_icon_state()
@@ -379,8 +382,7 @@
/datum/bodypart_overlay/mutant/genital/vagina
feature_key = ORGAN_SLOT_VAGINA
- layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER)
- layer_offset = VAGINA_LAYER_OFFSET
+ layers = list(EXTERNAL_FRONT = VAGINA_FRONT_LAYER)
/obj/item/organ/genital/vagina/get_description_string(datum/sprite_accessory/genital/gas)
var/returned_string = "You see a [LOWER_TEXT(genital_name)] vagina."
@@ -431,6 +433,7 @@
/datum/bodypart_overlay/mutant/genital/womb
feature_key = ORGAN_SLOT_WOMB
layers = list()
+ offset_location = NO_MODIFY
/datum/bodypart_overlay/mutant/genital/womb/get_global_feature_list()
return SSaccessories.sprite_accessories[ORGAN_SLOT_WOMB]
@@ -481,8 +484,9 @@
/datum/bodypart_overlay/mutant/genital/breasts
feature_key = ORGAN_SLOT_BREASTS
- layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
+ layers = list(EXTERNAL_FRONT = BREASTS_FRONT_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
layer_offset = BREASTS_LAYER_OFFSET
+ offset_location = ENTIRE_BODY
/obj/item/organ/genital/breasts/get_description_string(datum/sprite_accessory/genital/gas)
var/returned_string = "You see a [LOWER_TEXT(genital_name)] of breasts."
@@ -624,8 +628,9 @@
/datum/bodypart_overlay/mutant/genital/butt
feature_key = ORGAN_SLOT_BUTT
- layers = list(EXTERNAL_ADJACENT = BODY_ADJ_LAYER, EXTERNAL_FRONT = BODY_FRONT_LAYER)
+ layers = list(EXTERNAL_ADJACENT = BODY_ADJ_LAYER, EXTERNAL_FRONT = ASS_LAYER_FRONT)
layer_offset = BUTT_LAYER_OFFSET
+ offset_location = ENTIRE_BODY
/datum/bodypart_overlay/mutant/genital/butt/get_global_feature_list()
return SSaccessories.sprite_accessories[ORGAN_SLOT_BUTT]
@@ -694,8 +699,9 @@
/datum/bodypart_overlay/mutant/genital/belly
feature_key = ORGAN_SLOT_BELLY
- layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
+ layers = list(EXTERNAL_FRONT = BELLY_FRONT_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
layer_offset = BELLY_LAYER_OFFSET
+ offset_location = ENTIRE_BODY
/datum/bodypart_overlay/mutant/genital/belly/get_global_feature_list()
return SSaccessories.sprite_accessories[ORGAN_SLOT_BELLY]
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/head_accessory.dm b/modular_skyrat/modules/customization/modules/surgery/organs/head_accessory.dm
index 2feb007f9af..973f53824de 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/head_accessory.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/head_accessory.dm
@@ -16,6 +16,7 @@
feature_key = "head_accessory"
layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_ADJACENT = BODY_ADJ_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = UPPER_BODY
/datum/bodypart_overlay/mutant/head_accessory/override_color(rgb_value)
return draw_color
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/moth_markings.dm b/modular_skyrat/modules/customization/modules/surgery/organs/moth_markings.dm
index 0eb97646773..e45d6a42e76 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/moth_markings.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/moth_markings.dm
@@ -16,6 +16,7 @@
feature_key = FEATURE_MOTH_MARKINGS
layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_ADJACENT = BODY_ADJ_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = ENTIRE_BODY
/datum/bodypart_overlay/mutant/moth_markings/override_color(rgb_value)
return draw_color
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/neck_accessory.dm b/modular_skyrat/modules/customization/modules/surgery/organs/neck_accessory.dm
index e902cbce141..a93501763ba 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/neck_accessory.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/neck_accessory.dm
@@ -16,6 +16,7 @@
feature_key = "neck_accessory"
layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_ADJACENT = BODY_ADJ_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = UPPER_BODY
/datum/bodypart_overlay/mutant/neck_accessory/override_color(rgb_value)
return draw_color
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/pod.dm b/modular_skyrat/modules/customization/modules/surgery/organs/pod.dm
index 36ab582b12f..84a8cacf215 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/pod.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/pod.dm
@@ -1,3 +1,49 @@
/obj/item/organ/pod_hair
- mutantpart_key = "pod_hair"
- mutantpart_info = list(MUTANT_INDEX_NAME = "Ivy", MUTANT_INDEX_COLOR_LIST = list("#ffffff", "#ffffff", "#ffffff"))
+ name = "podperson hair"
+ desc = "Base for many-o-salads."
+ mutantpart_key = FEATURE_POD_HAIR
+ zone = BODY_ZONE_HEAD
+ slot = ORGAN_SLOT_EXTERNAL_POD_HAIR
+ bodypart_overlay = /datum/bodypart_overlay/mutant/pod_hair
+
+ mutantpart_key = FEATURE_POD_HAIR
+ mutantpart_info = list(MUTANT_INDEX_NAME = /datum/sprite_accessory/pod_hair/ivy::name, MUTANT_INDEX_COLOR_LIST = list("#ffffff", "#ffffff", "#ffffff"))
+
+/datum/bodypart_overlay/mutant/pod_hair
+ layers = list(
+ EXTERNAL_FRONT = ABOVE_BODY_FRONT_HEAD_LAYER,
+ EXTERNAL_ADJACENT = BODY_FRONT_LAYER
+ )
+ color_swapped_layer = EXTERNAL_FRONT
+ color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = ENTIRE_BODY
+
+/datum/bodypart_overlay/mutant/pod_hair/override_color(rgb_value)
+ return draw_color
+
+/datum/bodypart_overlay/mutant/pod_hair/color_images(list/image/overlays, obj/item/bodypart/limb, layer_index)
+ if(layer_index != color_swapped_layer)
+ return ..()
+ if(limb?.is_husked) // Husked? Skip the color inversion and let the base proc apply the standard gray husk colors.
+ return ..()
+ alpha = limb?.alpha || 255
+ for(var/index_to_color in overlay_indexes_to_color)
+ if(index_to_color > length(overlays))
+ break
+ var/image/overlay = overlays[index_to_color]
+ var/list/rgb_list
+ if(istext(draw_color) || length(draw_color) == 1) // legacy single-color mode, we just invert it
+ rgb_list = list()
+ for(var/col in rgb2num(islist(draw_color) ? draw_color[1] : draw_color))
+ rgb_list += (color_inverse_base - col) //inversa da color
+ else if(length(draw_color) >= 2)
+ rgb_list = rgb2num(draw_color[2])
+ if(rgb_list)
+ overlay.color = rgb(rgb_list[1], rgb_list[2], rgb_list[3])
+ else
+ overlay.color = null
+ overlay.alpha = alpha
+
+/datum/bodypart_overlay/mutant/pod_hair/randomize_appearance()
+ . = ..()
+ draw_color = list("#[random_color()]", "#[random_color()]", "#FFFFFF") // currently only two colors are used
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/skrell_hair.dm b/modular_skyrat/modules/customization/modules/surgery/organs/skrell_hair.dm
index afeed5d95f9..ec9405d352d 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/skrell_hair.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/skrell_hair.dm
@@ -17,6 +17,7 @@
feature_key = FEATURE_SKRELL_HAIR
layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_ADJACENT = BODY_ADJ_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = ENTIRE_BODY
/datum/bodypart_overlay/mutant/skrell_hair/override_color(rgb_value)
return draw_color
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/synth_antenna.dm b/modular_skyrat/modules/customization/modules/surgery/organs/synth_antenna.dm
index 20b267a9c66..ce4cde73aa9 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/synth_antenna.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/synth_antenna.dm
@@ -15,8 +15,11 @@
/datum/bodypart_overlay/mutant/synth_antenna
feature_key = MUTANT_SYNTH_ANTENNA
- layers = EXTERNAL_ADJACENT
+ layers = list(
+ EXTERNAL_ADJACENT = BODY_ADJ_LAYER
+ )
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = UPPER_BODY
/datum/bodypart_overlay/mutant/synth_antenna/override_color(rgb_value)
return draw_color
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/synth_screen.dm b/modular_skyrat/modules/customization/modules/surgery/organs/synth_screen.dm
index 0685c8af0f2..e3fc80d3944 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/synth_screen.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/synth_screen.dm
@@ -15,8 +15,9 @@
/datum/bodypart_overlay/mutant/synth_screen
feature_key = MUTANT_SYNTH_SCREEN
- layers = list(EXTERNAL_FRONT = 19.1)
+ layers = list(EXTERNAL_FRONT_UNDER_CLOTHES = 19.1)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = UPPER_BODY
/datum/bodypart_overlay/mutant/synth_screen/override_color(rgb_value)
return draw_color
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/tails.dm b/modular_skyrat/modules/customization/modules/surgery/organs/tails.dm
index d7688a76f85..0084cc2cda0 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/tails.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/tails.dm
@@ -44,7 +44,6 @@
return TRUE
-
/obj/item/organ/tail/on_mob_insert(mob/living/carbon/receiver, special, movement_flags)
if(sprite_accessory_flags & SPRITE_ACCESSORY_WAG_ABLE)
wag_flags |= WAG_ABLE
@@ -57,6 +56,9 @@
wag_flags = WAG_ABLE // waggable monkey tails
mutantpart_info = list(MUTANT_INDEX_NAME = "Monkey", MUTANT_INDEX_COLOR_LIST = list("#FFFFFF"))
+/datum/bodypart_overlay/mutant/tail/monkey
+ feature_key = FEATURE_TAIL_GENERIC // IM TIRED OF THESE FUCKS BREAKING EVERY FUCKING TIME
+
/obj/item/organ/tail/lizard
mutantpart_info = list(MUTANT_INDEX_NAME = "Smooth", MUTANT_INDEX_COLOR_LIST = list("#DDFFDD"))
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/xenodorsal.dm b/modular_skyrat/modules/customization/modules/surgery/organs/xenodorsal.dm
index c443e853adc..71d6d81c9b3 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/xenodorsal.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/xenodorsal.dm
@@ -16,6 +16,7 @@
feature_key = FEATURE_XENODORSAL
layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = ENTIRE_BODY
/datum/bodypart_overlay/mutant/xenodorsal/override_color(rgb_value)
return draw_color
diff --git a/modular_skyrat/modules/customization/modules/surgery/organs/xenohead.dm b/modular_skyrat/modules/customization/modules/surgery/organs/xenohead.dm
index 6207563d5ca..c81ff7f0fd7 100644
--- a/modular_skyrat/modules/customization/modules/surgery/organs/xenohead.dm
+++ b/modular_skyrat/modules/customization/modules/surgery/organs/xenohead.dm
@@ -15,8 +15,9 @@
/datum/bodypart_overlay/mutant/xenohead
feature_key = FEATURE_XENOHEAD
- layers = EXTERNAL_ADJACENT
+ layers = list(EXTERNAL_ADJACENT = BODY_ADJ_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = UPPER_BODY
/datum/bodypart_overlay/mutant/xenohead/override_color(rgb_value)
return draw_color
diff --git a/modular_skyrat/modules/deforest_medical_items/code/storage_items.dm b/modular_skyrat/modules/deforest_medical_items/code/storage_items.dm
index 9339e0a641a..0830d6315f2 100644
--- a/modular_skyrat/modules/deforest_medical_items/code/storage_items.dm
+++ b/modular_skyrat/modules/deforest_medical_items/code/storage_items.dm
@@ -480,6 +480,7 @@
/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 6,
/datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/storage/backpack/duffelbag/deforest_medkit
category = list(
RND_CATEGORY_INITIAL,
@@ -495,6 +496,7 @@
/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 6,
/datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/storage/backpack/duffelbag/deforest_paramedic
category = list(
RND_CATEGORY_INITIAL,
@@ -510,6 +512,7 @@
/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 6,
/datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/storage/backpack/duffelbag/deforest_surgical
category = list(
RND_CATEGORY_INITIAL,
diff --git a/modular_skyrat/modules/digitigrade_cybernetics/code/robot_bodyparts.dm b/modular_skyrat/modules/digitigrade_cybernetics/code/robot_bodyparts.dm
index f0715de1702..4866cca1f73 100644
--- a/modular_skyrat/modules/digitigrade_cybernetics/code/robot_bodyparts.dm
+++ b/modular_skyrat/modules/digitigrade_cybernetics/code/robot_bodyparts.dm
@@ -5,12 +5,14 @@
name = "cyborg digitigrade right leg"
icon_static = 'modular_skyrat/modules/digitigrade_cybernetics/icons/digitigrade_parts.dmi'
icon = 'modular_skyrat/modules/digitigrade_cybernetics/icons/digitigrade_parts.dmi'
+ custom_materials = list(/datum/material/iron= SHEET_MATERIAL_AMOUNT * 2)
bodyshape = parent_type::bodyshape | BODYSHAPE_DIGITIGRADE
/obj/item/bodypart/leg/left/robot/digi
name = "cyborg digitigrade left leg"
icon_static = 'modular_skyrat/modules/digitigrade_cybernetics/icons/digitigrade_parts.dmi'
icon = 'modular_skyrat/modules/digitigrade_cybernetics/icons/digitigrade_parts.dmi'
+ custom_materials = list(/datum/material/iron= SHEET_MATERIAL_AMOUNT * 2)
bodyshape = parent_type::bodyshape | BODYSHAPE_DIGITIGRADE
/obj/item/bodypart/leg/right/robot/android/digi
diff --git a/modular_skyrat/modules/filtersandsetters/code/filtersandsetters.dm b/modular_skyrat/modules/filtersandsetters/code/filtersandsetters.dm
index b6f402b9b3a..f0ed15e6b3d 100644
--- a/modular_skyrat/modules/filtersandsetters/code/filtersandsetters.dm
+++ b/modular_skyrat/modules/filtersandsetters/code/filtersandsetters.dm
@@ -4,6 +4,7 @@
name = "alien bonesetter"
desc = "A reversed engineered bonesetter... This does not look nice to be on the receiving end of... ."
icon = 'modular_skyrat/modules/filtersandsetters/icons/surgery_tools.dmi'
+ custom_materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT, /datum/material/silver =HALF_SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma =SMALL_MATERIAL_AMOUNT*5, /datum/material/titanium =HALF_SHEET_MATERIAL_AMOUNT * 1.5)
icon_state = "bonesetter"
toolspeed = 0.25
@@ -97,6 +98,7 @@
name = "alien bloodfilter"
desc = "A reversed engineered bloodfilter... This does not look nice to be on the receiving end of... ."
icon = 'modular_skyrat/modules/filtersandsetters/icons/surgery_tools.dmi'
+ custom_materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT, /datum/material/silver =HALF_SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma =SMALL_MATERIAL_AMOUNT*5, /datum/material/titanium =HALF_SHEET_MATERIAL_AMOUNT * 1.5)
icon_state = "bloodfilter"
toolspeed = 0.25
diff --git a/modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.dm b/modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.dm
index 4f6e2996dcc..5c51bf16dba 100644
--- a/modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.dm
+++ b/modular_skyrat/modules/food_replicator/code/replicator_designs/replicator_food.dm
@@ -1,7 +1,6 @@
/datum/design/biogen/food_replicator
name = "Food Replicator"
id = DESIGN_ID_IGNORE
- build_path = /obj/item/food
materials = list(/datum/material/biomass = 100)
category = list(
RND_CATEGORY_INITIAL,
diff --git a/modular_skyrat/modules/holdingfashion_port/code/backpack.dm b/modular_skyrat/modules/holdingfashion_port/code/backpack.dm
index 8e2ddc96fc6..8982fad6da8 100644
--- a/modular_skyrat/modules/holdingfashion_port/code/backpack.dm
+++ b/modular_skyrat/modules/holdingfashion_port/code/backpack.dm
@@ -6,6 +6,7 @@
w_class = WEIGHT_CLASS_BULKY
resistance_flags = FIRE_PROOF
item_flags = NO_MAT_REDEMPTION
+ custom_materials = list(/datum/material/gold = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/bluespace = SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT * 0.75, /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 2.5)
/obj/item/storage/backpack/holding/satchel
custom_materials = null
@@ -15,6 +16,7 @@
icon_state = "holdingsatchel"
worn_icon = 'modular_skyrat/modules/holdingfashion_port/icons/back.dmi'
worn_icon_state = "holdingsatchel"
+ custom_materials = list(/datum/material/gold = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/bluespace = SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SMALL_MATERIAL_AMOUNT * 7.5, /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 2.5)
/obj/item/duffel_of_holding_inert
name = "inert duffel bag of holding"
@@ -24,6 +26,7 @@
w_class = WEIGHT_CLASS_BULKY
resistance_flags = FIRE_PROOF
item_flags = NO_MAT_REDEMPTION
+ custom_materials = list(/datum/material/gold = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/bluespace = SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SHEET_MATERIAL_AMOUNT * 0.75, /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 2.5)
/obj/item/storage/backpack/holding/duffel
custom_materials = null
@@ -33,3 +36,4 @@
icon_state = "holdingduffel"
worn_icon = 'modular_skyrat/modules/holdingfashion_port/icons/back.dmi'
worn_icon_state = "holdingduffel"
+ custom_materials = list(/datum/material/gold = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/bluespace = SHEET_MATERIAL_AMOUNT, /datum/material/diamond = SMALL_MATERIAL_AMOUNT * 7.5, /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 2.5)
diff --git a/modular_skyrat/modules/holdingfashion_port/code/bluespace_design.dm b/modular_skyrat/modules/holdingfashion_port/code/bluespace_design.dm
index 79856dcc67e..db4bc09e8df 100644
--- a/modular_skyrat/modules/holdingfashion_port/code/bluespace_design.dm
+++ b/modular_skyrat/modules/holdingfashion_port/code/bluespace_design.dm
@@ -4,11 +4,11 @@
id = "satchel_holding"
build_type = PROTOLATHE
materials = list(
- /datum/material/gold = SHEET_MATERIAL_AMOUNT * 2,
- /datum/material/diamond = SHEET_MATERIAL_AMOUNT,
- /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 3,
- /datum/material/bluespace = SHEET_MATERIAL_AMOUNT,
- )
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 1.5,
+ /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
+ /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 2.5,
+ /datum/material/bluespace =SHEET_MATERIAL_AMOUNT
+ )
build_path = /obj/item/satchel_of_holding_inert
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_BLUESPACE,
@@ -21,11 +21,11 @@
id = "duffel_holding"
build_type = PROTOLATHE
materials = list(
- /datum/material/gold = SHEET_MATERIAL_AMOUNT * 2,
- /datum/material/diamond = SHEET_MATERIAL_AMOUNT,
- /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 3,
- /datum/material/bluespace = SHEET_MATERIAL_AMOUNT,
- )
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 1.5,
+ /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT * 1.5,
+ /datum/material/uranium = SMALL_MATERIAL_AMOUNT * 2.5,
+ /datum/material/bluespace =SHEET_MATERIAL_AMOUNT
+ )
build_path = /obj/item/duffel_of_holding_inert
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_BLUESPACE,
diff --git a/modular_skyrat/modules/huds/code/glasses/HUD_Glasses.dm b/modular_skyrat/modules/huds/code/glasses/HUD_Glasses.dm
index 50117186a2b..d5f8b01f81c 100644
--- a/modular_skyrat/modules/huds/code/glasses/HUD_Glasses.dm
+++ b/modular_skyrat/modules/huds/code/glasses/HUD_Glasses.dm
@@ -4,6 +4,11 @@
icon = 'modular_skyrat/modules/huds/icons/huds.dmi'
icon_state = "glasses_healthhud"
worn_icon = 'modular_skyrat/modules/huds/icons/hudeyes.dmi'
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 4,
+ )
/obj/item/clothing/glasses/hud/health/prescription/Initialize(mapload)
. = ..()
@@ -15,6 +20,11 @@
icon = 'modular_skyrat/modules/huds/icons/huds.dmi'
icon_state = "glasses_diagnostichud"
worn_icon = 'modular_skyrat/modules/huds/icons/hudeyes.dmi'
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4,
+ )
/obj/item/clothing/glasses/hud/diagnostic/prescription/Initialize(mapload)
. = ..()
@@ -26,6 +36,11 @@
icon = 'modular_skyrat/modules/huds/icons/huds.dmi'
icon_state = "glasses_securityhud"
worn_icon = 'modular_skyrat/modules/huds/icons/hudeyes.dmi'
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 4,
+ )
/obj/item/clothing/glasses/hud/security/prescription/Initialize(mapload)
. = ..()
@@ -37,6 +52,11 @@
icon = 'modular_skyrat/modules/huds/icons/huds.dmi'
icon_state = "glasses_sciencehud"
worn_icon = 'modular_skyrat/modules/huds/icons/hudeyes.dmi'
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4,
+ )
glass_colour_type = /datum/client_colour/glass_colour/purple
armor_type = /datum/armor/prescription_science
@@ -51,6 +71,11 @@
/obj/item/clothing/glasses/meson/prescription
name = "prescription optical meson scanner"
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting conditions. This one has prescription lens fitted in."
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 4,
+ )
/obj/item/clothing/glasses/meson/prescription/Initialize(mapload)
. = ..()
@@ -59,6 +84,12 @@
/obj/item/clothing/glasses/meson/engine/prescription
name = "prescription engineering scanner goggles"
desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, the T-ray Scanner mode lets you see underfloor objects such as cables and pipes, and the Radiation Scanner mode let's you see objects contaminated by radiation. Each lens has been replaced with a corrective lens."
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plasma = SMALL_MATERIAL_AMOUNT,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 4,
+ )
/obj/item/clothing/glasses/meson/engine/prescription/Initialize(mapload)
. = ..()
@@ -67,6 +98,11 @@
/obj/item/clothing/glasses/meson/engine/tray/prescription
name = "prescription optical t-ray scanner"
desc = "Goggles used by engineers. The Meson Scanner mode lets you see basic structural and terrain layouts through walls, the T-ray Scanner mode lets you see underfloor objects such as cables and pipes, and the Radiation Scanner mode let's you see objects contaminated by radiation. This one has a lens that help correct eye sight."
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT,
+ )
/obj/item/clothing/glasses/meson/engine/tray/prescription/Initialize(mapload)
. = ..()
diff --git a/modular_skyrat/modules/hyposprays/code/autolathe_designs.dm b/modular_skyrat/modules/hyposprays/code/autolathe_designs.dm
index 0d08c2049bd..0ed43f40bd6 100644
--- a/modular_skyrat/modules/hyposprays/code/autolathe_designs.dm
+++ b/modular_skyrat/modules/hyposprays/code/autolathe_designs.dm
@@ -7,6 +7,7 @@
/datum/material/glass = SHEET_MATERIAL_AMOUNT * 0.5,
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 0.5,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/reagent_containers/cup/vial/small
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL,
@@ -20,6 +21,7 @@
/datum/material/glass = SHEET_MATERIAL_AMOUNT,
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 0.5,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/reagent_containers/cup/vial/large
// Hypospray cases
@@ -31,6 +33,7 @@
/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 3,
/datum/material/iron = SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/storage/hypospraykit/empty
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL,
@@ -45,6 +48,7 @@
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 3,
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 1,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/storage/hypospraykit/cmo/empty
// Hyposprays
@@ -73,6 +77,7 @@
/datum/material/glass = SHEET_MATERIAL_AMOUNT * 4,
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 2,
)
+ transfered_materials = list(/obj/item/device/custom_kit/deluxe_hypo2 = list(/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 8))
build_path = /obj/item/device/custom_kit/deluxe_hypo2
category = list(
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_EQUIPMENT_MEDICAL,
diff --git a/modular_skyrat/modules/hyposprays/code/hyposprays_II.dm b/modular_skyrat/modules/hyposprays/code/hyposprays_II.dm
index 75758b07bdb..000c599e71c 100644
--- a/modular_skyrat/modules/hyposprays/code/hyposprays_II.dm
+++ b/modular_skyrat/modules/hyposprays/code/hyposprays_II.dm
@@ -23,6 +23,11 @@
greyscale_config = /datum/greyscale_config/hypospray_mkii
desc = "A new development from DeForest Medical, this hypospray takes 50-unit vials as the drug supply for easy swapping."
w_class = WEIGHT_CLASS_TINY
+ custom_materials = list(
+ /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT,
+ )
var/list/allowed_containers = list(/obj/item/reagent_containers/cup/vial/small)
/// Is the hypospray only able to use small vials. Relates to the loaded overlays
var/small_only = TRUE
@@ -78,6 +83,7 @@
// don't tinker with a loaded (medi)gun. fool
from_obj = /obj/item/hypospray/mkii
to_obj = /obj/item/hypospray/mkii/deluxe
+ custom_materials = list(/datum/material/plastic = SHEET_MATERIAL_AMOUNT * 8)
/obj/item/device/custom_kit/deluxe_hypo2/pre_convert_check(obj/target_obj, mob/user)
var/obj/item/hypospray/mkii/our_hypo = target_obj
diff --git a/modular_skyrat/modules/implants/code/medical_designs.dm b/modular_skyrat/modules/implants/code/medical_designs.dm
index 0bfd0ae9627..d853f1a6384 100644
--- a/modular_skyrat/modules/implants/code/medical_designs.dm
+++ b/modular_skyrat/modules/implants/code/medical_designs.dm
@@ -8,6 +8,7 @@
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
construction_time = 200
build_path = /obj/item/organ/cyberimp/arm/toolkit/armblade
category = list(
@@ -25,6 +26,7 @@
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
construction_time = 20 SECONDS
build_path = /obj/item/organ/cyberimp/arm/toolkit/razor_claws
category = list(
@@ -42,6 +44,7 @@
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
construction_time = 200
build_path = /obj/item/organ/cyberimp/arm/toolkit/flash
category = list(
@@ -60,6 +63,7 @@
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/plastic = SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
construction_time = 200
build_path = /obj/item/organ/cyberimp/arm/toolkit/botany
category = list(
@@ -80,6 +84,7 @@
/datum/material/gold = SMALL_MATERIAL_AMOUNT * 6,
/datum/material/uranium = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/organ/eyes/night_vision/cyber
category = list(
RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_UTILITY,
@@ -98,6 +103,7 @@
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/organ/cyberimp/brain/anti_sleep
category = list(
RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_COMBAT,
@@ -116,6 +122,7 @@
/datum/material/silver = SHEET_MATERIAL_AMOUNT,
/datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/organ/cyberimp/chest/scanner
category = list(
RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_HEALTH,
@@ -132,6 +139,7 @@
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
construction_time = 200
build_path = /obj/item/organ/cyberimp/arm/toolkit/janitor
category = list(
@@ -149,6 +157,7 @@
/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
construction_time = 100
build_path = /obj/item/organ/cyberimp/arm/toolkit/lighter
category = list(
diff --git a/modular_skyrat/modules/magfed_turret/code/turret_framework.dm b/modular_skyrat/modules/magfed_turret/code/turret_framework.dm
index 36ffebf33e1..3940b59c99e 100644
--- a/modular_skyrat/modules/magfed_turret/code/turret_framework.dm
+++ b/modular_skyrat/modules/magfed_turret/code/turret_framework.dm
@@ -201,6 +201,14 @@
throwforce = 0
throw_speed = 3
throw_range = 7
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT,
+ /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT,
+ /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
+ )
////// the range it can scan at.
var/scan_range = 10
////// how many turrets it can have. changable incase of better ones wanted.
diff --git a/modular_skyrat/modules/medical_designs/medical_designs.dm b/modular_skyrat/modules/medical_designs/medical_designs.dm
index 7ae0549fe38..af859d8b664 100644
--- a/modular_skyrat/modules/medical_designs/medical_designs.dm
+++ b/modular_skyrat/modules/medical_designs/medical_designs.dm
@@ -5,6 +5,7 @@
materials = list(
/datum/material/plastic = SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/clothing/suit/toggle/labcoat/hospitalgown
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL,
diff --git a/modular_skyrat/modules/modular_ert/code/trauma_team/trauma_team_outfit.dm b/modular_skyrat/modules/modular_ert/code/trauma_team/trauma_team_outfit.dm
index 83b1252e1ad..031f86a9739 100644
--- a/modular_skyrat/modules/modular_ert/code/trauma_team/trauma_team_outfit.dm
+++ b/modular_skyrat/modules/modular_ert/code/trauma_team/trauma_team_outfit.dm
@@ -44,9 +44,9 @@
/obj/item/storage/box/medicells/PopulateContents()
. = ..()
- new /obj/item/weaponcell/medical/brute(src)
- new /obj/item/weaponcell/medical/burn(src)
- new /obj/item/weaponcell/medical/toxin/tier_2(src)
+ new /obj/item/weaponcell/medical/tier_1/brute(src)
+ new /obj/item/weaponcell/medical/tier_1/burn(src)
+ new /obj/item/weaponcell/medical/tier_2/toxin(src)
new /obj/item/weaponcell/medical/utility/temperature(src)
new /obj/item/weaponcell/medical/utility/bed(src)
diff --git a/modular_skyrat/modules/modular_implants/code/misc_devices.dm b/modular_skyrat/modules/modular_implants/code/misc_devices.dm
index bfb5645c7a4..3c9bb7c81fb 100644
--- a/modular_skyrat/modules/modular_implants/code/misc_devices.dm
+++ b/modular_skyrat/modules/modular_implants/code/misc_devices.dm
@@ -7,6 +7,11 @@
to invent their own devices. This one is a 'Wrangler' model NIF-Cutter, used for crudely wiping programs directly off a user's Framework."
icon = 'modular_skyrat/modules/modular_implants/icons/obj/devices.dmi'
icon_state = "nifsoft_remover"
+ custom_materials = list(
+ /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/uranium = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT
+ )
///Is a disk with the corresponding NIFSoft created when said NIFSoft is removed?
var/create_disk = FALSE
diff --git a/modular_skyrat/modules/modular_implants/code/nif_research.dm b/modular_skyrat/modules/modular_implants/code/nif_research.dm
index 3355a31e0ea..274dfa52374 100644
--- a/modular_skyrat/modules/modular_implants/code/nif_research.dm
+++ b/modular_skyrat/modules/modular_implants/code/nif_research.dm
@@ -25,6 +25,7 @@
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/plastic = SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
category = list(
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_CARGO,
)
@@ -68,6 +69,7 @@
/datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/plastic = SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
category = list(
RND_CATEGORY_EQUIPMENT,
)
@@ -125,6 +127,7 @@
/datum/material/glass = SHEET_MATERIAL_AMOUNT * 2,
/datum/material/plastic = SHEET_MATERIAL_AMOUNT,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
category = list(
RND_CATEGORY_EQUIPMENT,
)
diff --git a/modular_skyrat/modules/modular_implants/code/soulcatcher/attachable_soulcatcher.dm b/modular_skyrat/modules/modular_implants/code/soulcatcher/attachable_soulcatcher.dm
index 88559605f23..1b1166c0aa4 100644
--- a/modular_skyrat/modules/modular_implants/code/soulcatcher/attachable_soulcatcher.dm
+++ b/modular_skyrat/modules/modular_implants/code/soulcatcher/attachable_soulcatcher.dm
@@ -57,6 +57,10 @@
icon = 'modular_skyrat/modules/modular_implants/icons/obj/devices.dmi'
icon_state = "attachable-soulcatcher"
w_class = WEIGHT_CLASS_SMALL
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT
+ )
/// Do we want to destory the item once it is attached to an item?
var/destroy_on_use = TRUE
/// What items do we want to prevent the viewer from attaching this to?
diff --git a/modular_skyrat/modules/modular_implants/code/soulcatcher/handheld_soulcatcher.dm b/modular_skyrat/modules/modular_implants/code/soulcatcher/handheld_soulcatcher.dm
index 1430b8bf3c1..840aa6f434f 100644
--- a/modular_skyrat/modules/modular_implants/code/soulcatcher/handheld_soulcatcher.dm
+++ b/modular_skyrat/modules/modular_implants/code/soulcatcher/handheld_soulcatcher.dm
@@ -11,6 +11,11 @@
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
slot_flags = ITEM_SLOT_BELT
obj_flags = UNIQUE_RENAME
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT,
+ /datum/material/bluespace = SHEET_MATERIAL_AMOUNT
+ )
/// What soulcatcher datum is associated with this item?
var/datum/component/carrier/soulcatcher/linked_soulcatcher
/// The cooldown for the RSD on scanning a body if the ghost refuses. This is here to prevent spamming.
diff --git a/modular_skyrat/modules/modular_items/code/modular_glasses.dm b/modular_skyrat/modules/modular_items/code/modular_glasses.dm
index 4f37b1267c2..762de4eaf96 100644
--- a/modular_skyrat/modules/modular_items/code/modular_glasses.dm
+++ b/modular_skyrat/modules/modular_items/code/modular_glasses.dm
@@ -168,6 +168,12 @@
glass_colour_type = /datum/client_colour/glass_colour/red
modes = list(MODE_OFF_FLASH_PROTECTION, MODE_ON)
modes_msg = list(MODE_OFF_FLASH_PROTECTION = "flash protection mode", MODE_ON = "optical matrix enabled")
+ custom_materials = list(
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 0.8,
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 0.7,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 2
+ )
// Medical Aviators
/obj/item/clothing/glasses/hud/ar/aviator/health
@@ -177,6 +183,11 @@
flash_protect = FLASH_PROTECTION_NONE
clothing_traits = list(TRAIT_MEDICAL_HUD)
glass_colour_type = /datum/client_colour/glass_colour/lightblue
+ custom_materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 8,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4,
+ )
// (Normal) meson scanner Aviators
/obj/item/clothing/glasses/hud/ar/aviator/meson
@@ -188,6 +199,11 @@
vision_flags = SEE_TURFS
color_cutoffs = list(5, 15, 5)
glass_colour_type = /datum/client_colour/glass_colour/lightgreen
+ custom_materials = list(
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 0.8,
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 0.7,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4
+ )
// diagnostic Aviators
/obj/item/clothing/glasses/hud/ar/aviator/diagnostic
@@ -197,6 +213,11 @@
flash_protect = FLASH_PROTECTION_NONE
clothing_traits = list(TRAIT_DIAGNOSTIC_HUD)
glass_colour_type = /datum/client_colour/glass_colour/lightorange
+ custom_materials = list(
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 0.8,
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 0.7,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4
+ )
// Science Aviators
/obj/item/clothing/glasses/hud/ar/aviator/science
@@ -208,6 +229,11 @@
resistance_flags = ACID_PROOF
armor_type = /datum/armor/aviator_science
clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_RESEARCH_SCANNER)
+ custom_materials = list(
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 0.8,
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 0.7,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4
+ )
/datum/armor/aviator_science
fire = 80
@@ -261,26 +287,52 @@
icon_state = "projector_meson"
vision_flags = SEE_TURFS
color_cutoffs = list(10, 30, 10)
+ custom_materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 8,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 4,
+ )
/obj/item/clothing/glasses/hud/ar/projector/health
name = "retinal projector health HUD"
icon_state = "projector_med"
clothing_traits = list(TRAIT_MEDICAL_HUD)
+ custom_materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 8,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 4,
+ )
/obj/item/clothing/glasses/hud/ar/projector/security
name = "retinal projector security HUD"
icon_state = "projector_sec"
clothing_traits = list(TRAIT_SECURITY_HUD)
+ custom_materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 8,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 4,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 2,
+ )
/obj/item/clothing/glasses/hud/ar/projector/diagnostic
name = "retinal projector diagnostic HUD"
icon_state = "projector_diagnostic"
clothing_traits = list(TRAIT_DIAGNOSTIC_HUD)
+ custom_materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 8,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 4,
+ )
/obj/item/clothing/glasses/hud/ar/projector/science
name = "science retinal projector"
icon_state = "projector_sci"
clothing_traits = list(TRAIT_REAGENT_SCANNER, TRAIT_RESEARCH_SCANNER)
+ custom_materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 8,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 4,
+ )
#undef MODE_OFF
#undef MODE_OFF_FLASH_PROTECTION
diff --git a/modular_skyrat/modules/modular_weapons/code/autolathe_designs.dm b/modular_skyrat/modules/modular_weapons/code/autolathe_designs.dm
index d73948a76a9..04edfdd51ec 100644
--- a/modular_skyrat/modules/modular_weapons/code/autolathe_designs.dm
+++ b/modular_skyrat/modules/modular_weapons/code/autolathe_designs.dm
@@ -8,9 +8,7 @@
name = "4.6x30mm Bullet"
id = "c46x30mm"
build_type = AUTOLATHE
- materials = list(
- /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7.5,
- )
+ materials = AMMO_MATS_BASIC
build_path = /obj/item/ammo_casing/c46x30mm
category = list(
RND_CATEGORY_HACKED,
@@ -23,9 +21,7 @@
name = ".45 Bullet"
id = "c45_lethal"
build_type = AUTOLATHE
- materials = list(
- /datum/material/iron = SMALL_MATERIAL_AMOUNT * 7.5,
- )
+ materials = AMMO_MATS_BASIC
build_path = /obj/item/ammo_casing/c45
category = list(
RND_CATEGORY_HACKED,
diff --git a/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/carwo_defense_systems/magazines.dm b/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/carwo_defense_systems/magazines.dm
index f5dfff07ed4..b94168f0160 100644
--- a/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/carwo_defense_systems/magazines.dm
+++ b/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/carwo_defense_systems/magazines.dm
@@ -65,6 +65,7 @@
desc = "A standard size box for .980 grenades, holds four shells."
icon = 'modular_skyrat/modules/modular_weapons/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi'
icon_state = "granata_standard"
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10)
multiple_sprites = AMMO_BOX_FULL_EMPTY
w_class = WEIGHT_CLASS_NORMAL
ammo_type = /obj/item/ammo_casing/c980grenade
@@ -279,27 +280,3 @@
icon_state = "40box_flame"
ammo_type = /obj/item/ammo_casing/c40sol/incendiary
-
-/obj/item/ammo_box/magazine/c980_grenade
- name = "\improper Kiboko grenade box"
- desc = "A standard size box for .980 grenades, holds four shells."
- icon = 'modular_skyrat/modules/modular_weapons/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi'
- icon_state = "granata_standard"
- multiple_sprites = AMMO_BOX_FULL_EMPTY
- w_class = WEIGHT_CLASS_NORMAL
- ammo_type = /obj/item/ammo_casing/c980grenade
- caliber = CALIBER_980TYDHOUER
- max_ammo = 4
-
-/obj/item/ammo_box/magazine/c980_grenade/starts_empty
- start_empty = TRUE
-
-/obj/item/ammo_box/magazine/c980_grenade/drum
- name = "\improper Kiboko grenade drum"
- desc = "A drum for .980 grenades, holds six shells."
- icon_state = "granata_drum"
- w_class = WEIGHT_CLASS_NORMAL
- max_ammo = 6
-
-/obj/item/ammo_box/magazine/c980_grenade/drum/starts_empty
- start_empty = TRUE
diff --git a/modular_skyrat/modules/moretraitoritems/code/weapons.dm b/modular_skyrat/modules/moretraitoritems/code/weapons.dm
index cddfb6db403..a806f9e30db 100644
--- a/modular_skyrat/modules/moretraitoritems/code/weapons.dm
+++ b/modular_skyrat/modules/moretraitoritems/code/weapons.dm
@@ -46,6 +46,9 @@
max_ammo = 7
multiple_sprites = AMMO_BOX_PER_BULLET
item_flags = NO_MAT_REDEMPTION
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
+ )
/obj/item/clothing/head/hats/sus_bowler
diff --git a/modular_skyrat/modules/mutants/code/mutant_cure.dm b/modular_skyrat/modules/mutants/code/mutant_cure.dm
index 495ea4be62f..75a69786bc0 100644
--- a/modular_skyrat/modules/mutants/code/mutant_cure.dm
+++ b/modular_skyrat/modules/mutants/code/mutant_cure.dm
@@ -5,7 +5,7 @@
icon_state = "extractor"
custom_materials = list(
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- /datum/material/gold = SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 2,
/datum/material/uranium = HALF_SHEET_MATERIAL_AMOUNT,
/datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT,
)
diff --git a/modular_skyrat/modules/organs/code/tongue.dm b/modular_skyrat/modules/organs/code/tongue.dm
index 6dc94982dba..90420b01d83 100644
--- a/modular_skyrat/modules/organs/code/tongue.dm
+++ b/modular_skyrat/modules/organs/code/tongue.dm
@@ -168,6 +168,11 @@
say_mod = "says"
// Not as good as organic tongues, not as bad as the robotic voicebox.
taste_sensitivity = 20
+ custom_materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT * 2,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT * 2
+ )
/obj/item/organ/tongue/vox
name = "vox tongue"
diff --git a/modular_skyrat/modules/polarized_windows/polarizer.dm b/modular_skyrat/modules/polarized_windows/polarizer.dm
index fbfd4ba119e..6a33fc6b270 100644
--- a/modular_skyrat/modules/polarized_windows/polarizer.dm
+++ b/modular_skyrat/modules/polarized_windows/polarizer.dm
@@ -1,6 +1,10 @@
/obj/item/assembly/control/polarizer
name = "window polarization remote controller"
desc = "A small electronic device able to control the polarization status of linked windows remotely."
+ custom_materials = list(
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT,
+ )
/// Whether the connected windows are meant to be polarized or not.
var/polarizing = FALSE
diff --git a/modular_skyrat/modules/primitive_cooking_additions/code/millstone.dm b/modular_skyrat/modules/primitive_cooking_additions/code/millstone.dm
index 0076531d17a..57f7c7a9c88 100644
--- a/modular_skyrat/modules/primitive_cooking_additions/code/millstone.dm
+++ b/modular_skyrat/modules/primitive_cooking_additions/code/millstone.dm
@@ -153,7 +153,7 @@
balloon_alert_to_viewers("stopped grinding")
return
- user.mind.adjust_experience(/datum/skill/primitive, 5)
+ user.mind?.adjust_experience(/datum/skill/primitive, 5)
for(var/target_item in contents)
seedify(target_item, t_max = 1)
diff --git a/modular_skyrat/modules/primitive_production/code/ceramics.dm b/modular_skyrat/modules/primitive_production/code/ceramics.dm
index 16c403ada82..ebfad8af150 100644
--- a/modular_skyrat/modules/primitive_production/code/ceramics.dm
+++ b/modular_skyrat/modules/primitive_production/code/ceramics.dm
@@ -6,7 +6,7 @@
if(!glass_item.use(1))
return
new /obj/item/stack/clay(get_turf(src))
- user.mind.adjust_experience(/datum/skill/production, 1)
+ user.mind?.adjust_experience(/datum/skill/production, 1)
return
return ..()
@@ -16,7 +16,7 @@
if(!glass_item.use(1))
return
new /obj/item/stack/clay(src)
- user.mind.adjust_experience(/datum/skill/production, 1)
+ user.mind?.adjust_experience(/datum/skill/production, 1)
return
return ..()
@@ -30,7 +30,7 @@
if(!glass_item.use(1))
return
new /obj/item/stack/clay(get_turf(src))
- user.mind.adjust_experience(/datum/skill/production, 1)
+ user.mind?.adjust_experience(/datum/skill/production, 1)
return
return ..()
@@ -188,7 +188,7 @@
return
to_chat(user, span_notice(given_message[loop_try]))
new spawn_type(get_turf(src))
- user.mind.adjust_experience(/datum/skill/production, 50)
+ user.mind?.adjust_experience(/datum/skill/production, 50)
has_clay = FALSE
icon_state = "throw_wheel_empty"
diff --git a/modular_skyrat/modules/primitive_production/code/glassblowing.dm b/modular_skyrat/modules/primitive_production/code/glassblowing.dm
index 0cb964d1bf1..a08a482a11e 100644
--- a/modular_skyrat/modules/primitive_production/code/glassblowing.dm
+++ b/modular_skyrat/modules/primitive_production/code/glassblowing.dm
@@ -325,7 +325,7 @@
in_use = TRUE
user.put_in_hands(new glass.chosen_item)
- user.mind.adjust_experience(/datum/skill/production, 30)
+ user.mind?.adjust_experience(/datum/skill/production, 30)
glass_ref = null
qdel(glass)
icon_state = "blow_pipe_empty"
@@ -393,7 +393,7 @@
in_use = FALSE
to_chat(user, span_notice("You finish trying to [step_id] [src]."))
- user.mind.adjust_experience(/datum/skill/production, 10)
+ user.mind?.adjust_experience(/datum/skill/production, 10)
/**
diff --git a/modular_skyrat/modules/reagent_forging/code/crafting_bench.dm b/modular_skyrat/modules/reagent_forging/code/crafting_bench.dm
index fbfdf7040ee..7329237fcaf 100644
--- a/modular_skyrat/modules/reagent_forging/code/crafting_bench.dm
+++ b/modular_skyrat/modules/reagent_forging/code/crafting_bench.dm
@@ -453,7 +453,7 @@
message_admins("[src] just failed to create something while crafting!")
return FALSE
- user.mind.adjust_experience(skill_to_grant, skill_amount)
+ user.mind?.adjust_experience(skill_to_grant, skill_amount)
clear_recipe()
update_appearance()
diff --git a/modular_skyrat/modules/reagent_forging/code/crafting_bench_recipes.dm b/modular_skyrat/modules/reagent_forging/code/crafting_bench_recipes.dm
index ae1fb0c215b..7e3152a736b 100644
--- a/modular_skyrat/modules/reagent_forging/code/crafting_bench_recipes.dm
+++ b/modular_skyrat/modules/reagent_forging/code/crafting_bench_recipes.dm
@@ -173,7 +173,7 @@
memory_bonus_exp = first_time_completion_exp_bonus
var/exp_give_mult = completion * get_material_quality_points_mult(product.get_master_material())
- user.mind.adjust_experience(relevant_skill, exp_give * exp_give_mult + memory_bonus_exp)
+ user.mind?.adjust_experience(relevant_skill, exp_give * exp_give_mult + memory_bonus_exp)
/datum/crafting_bench_recipe/proc/move_to_world(obj/item/product, place_to_move_to)
if(istype(place_to_move_to, /obj/structure/reagent_crafting_bench))
diff --git a/modular_skyrat/modules/reagent_forging/code/forge.dm b/modular_skyrat/modules/reagent_forging/code/forge.dm
index f0781de4cf0..c43ecdb457d 100644
--- a/modular_skyrat/modules/reagent_forging/code/forge.dm
+++ b/modular_skyrat/modules/reagent_forging/code/forge.dm
@@ -650,7 +650,7 @@
balloon_alert(user, "finished setting [ceramic_item]")
var/obj/item/ceramic/spawned_ceramic = new ceramic_item.forge_item(get_turf(src))
- user.mind.adjust_experience(/datum/skill/production, 50)
+ user.mind?.adjust_experience(/datum/skill/production, 50)
spawned_ceramic.color = ceramic_item.color
qdel(ceramic_item)
@@ -673,7 +673,7 @@
return
var/obj/item/glassblowing/molten_glass/spawned_glass = new /obj/item/glassblowing/molten_glass(get_turf(src))
- user.mind.adjust_experience(/datum/skill/production, 10)
+ user.mind?.adjust_experience(/datum/skill/production, 10)
COOLDOWN_START(spawned_glass, remaining_heat, glassblowing_amount)
spawned_glass.total_time = glassblowing_amount
@@ -702,7 +702,7 @@
metal_item.has_sand = FALSE
metal_item.icon_state = "metal_cup_empty" // This should be handled a better way but presently this is how it works
var/obj/item/glassblowing/molten_glass/spawned_glass = new /obj/item/glassblowing/molten_glass(get_turf(src))
- user.mind.adjust_experience(/datum/skill/production, 10)
+ user.mind?.adjust_experience(/datum/skill/production, 10)
COOLDOWN_START(spawned_glass, remaining_heat, glassblowing_amount)
spawned_glass.total_time = glassblowing_amount
@@ -872,7 +872,7 @@
COOLDOWN_START(find_glass, remaining_heat, glassblowing_amount)
find_glass.total_time = glassblowing_amount
to_chat(user, span_notice("You finish heating up [blowing_item]."))
- user.mind.adjust_experience(/datum/skill/production, 10)
+ user.mind?.adjust_experience(/datum/skill/production, 10)
return ITEM_INTERACT_SUCCESS
/obj/structure/reagent_forge/wrench_act(mob/living/user, obj/item/tool)
diff --git a/modular_skyrat/modules/reagent_forging/code/forge_items.dm b/modular_skyrat/modules/reagent_forging/code/forge_items.dm
index 0fa93ec1a94..db8702eb902 100644
--- a/modular_skyrat/modules/reagent_forging/code/forge_items.dm
+++ b/modular_skyrat/modules/reagent_forging/code/forge_items.dm
@@ -31,7 +31,7 @@
var/datum/component/forge_smithable/forge_component = GetComponent(/datum/component/forge_smithable)
if(forge_component.is_finished_smithing())
to_chat(quencher, span_notice("You cool down [src]."))
- quencher.mind.adjust_experience(/datum/skill/smithing, 5)
+ quencher.mind?.adjust_experience(/datum/skill/smithing, 5)
else
if(break_on_early_quench)
to_chat(quencher, span_warning("The [src] breaks from the thermal shock! Metalworking this type of object requires it to be hammered into completion."))
diff --git a/modular_skyrat/modules/reagent_forging/code/forge_smithable_component.dm b/modular_skyrat/modules/reagent_forging/code/forge_smithable_component.dm
index ac712bf42ee..03388f3034c 100644
--- a/modular_skyrat/modules/reagent_forging/code/forge_smithable_component.dm
+++ b/modular_skyrat/modules/reagent_forging/code/forge_smithable_component.dm
@@ -230,11 +230,11 @@
bad_hit(playsound = TRUE)
if(ANVIL_HAMMER_HIT_GOOD)
good_hit(amount = quality_points_to_give, playsound = TRUE)
- user.mind.adjust_experience(/datum/skill/smithing, 1) //A good hit gives mild experience
+ user.mind?.adjust_experience(/datum/skill/smithing, 1) //A good hit gives mild experience
do_sparks(1, FALSE, src)
if(ANVIL_HAMMER_HIT_PERFECT)
perfect_hit(amount = quality_points_to_give, playsound = TRUE)
- user.mind.adjust_experience(/datum/skill/smithing, 5) //A perfect hit gives good experience
+ user.mind?.adjust_experience(/datum/skill/smithing, 5) //A perfect hit gives good experience
do_sparks(2, FALSE, parent_item)
show_balloon_alert(user, hit_quality)
diff --git a/modular_skyrat/modules/resleeving/code/rsd_interface.dm b/modular_skyrat/modules/resleeving/code/rsd_interface.dm
index 36b1683f8a4..cde6155980b 100644
--- a/modular_skyrat/modules/resleeving/code/rsd_interface.dm
+++ b/modular_skyrat/modules/resleeving/code/rsd_interface.dm
@@ -6,6 +6,11 @@
inhand_icon_state = "syringe_0"
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 0.5,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT,
+ )
/// Attempts to use the item on the target brain.
/obj/item/rsd_interface/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
diff --git a/modular_skyrat/modules/salon/code/barber.dm b/modular_skyrat/modules/salon/code/barber.dm
index e1b85c0457b..26f87f0f939 100644
--- a/modular_skyrat/modules/salon/code/barber.dm
+++ b/modular_skyrat/modules/salon/code/barber.dm
@@ -13,7 +13,7 @@
paycheck = PAYCHECK_CREW
paycheck_department = ACCOUNT_SRV
- display_order = JOB_DISPLAY_ORDER_BARTENDER
+ display_order = JOB_DISPLAY_ORDER_BARBER
bounty_types = CIV_JOB_BASIC
departments_list = list(
/datum/job_department/service,
diff --git a/modular_skyrat/modules/salon/code/misc_items.dm b/modular_skyrat/modules/salon/code/misc_items.dm
index 9a2e6e0f691..375d36d5683 100644
--- a/modular_skyrat/modules/salon/code/misc_items.dm
+++ b/modular_skyrat/modules/salon/code/misc_items.dm
@@ -78,8 +78,10 @@
desc = "The latest and greatest power razor born from the science of shaving."
icon = 'modular_skyrat/modules/salon/icons/items.dmi'
icon_state = "razor"
+ inhand_icon_state = null
obj_flags = CONDUCTS_ELECTRICITY
w_class = WEIGHT_CLASS_TINY
+ sound_vary = FALSE
// How long do we take to shave someone's (facial) hair?
var/shaving_time = 5 SECONDS
diff --git a/modular_skyrat/modules/shotgunrebalance/code/autolathe_design.dm b/modular_skyrat/modules/shotgunrebalance/code/autolathe_design.dm
index b05c6fcfae1..3240537bcb9 100644
--- a/modular_skyrat/modules/shotgunrebalance/code/autolathe_design.dm
+++ b/modular_skyrat/modules/shotgunrebalance/code/autolathe_design.dm
@@ -3,9 +3,7 @@
name = "Shotgun Slug"
id = "shotgun_slug"
build_type = AUTOLATHE
- materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
+ materials = AMMO_MATS_SHOTGUN
build_path = /obj/item/ammo_casing/shotgun
category = list(
RND_CATEGORY_HACKED, RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO,
@@ -15,9 +13,7 @@
name = "Buckshot Shell"
id = "buckshot_shell"
build_type = AUTOLATHE
- materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
- )
+ materials = AMMO_MATS_SHOTGUN
build_path = /obj/item/ammo_casing/shotgun/buckshot
category = list(
RND_CATEGORY_HACKED, RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO,
diff --git a/modular_skyrat/modules/shotgunrebalance/code/shotgun.dm b/modular_skyrat/modules/shotgunrebalance/code/shotgun.dm
index cf7e2ff86dc..6053342d555 100644
--- a/modular_skyrat/modules/shotgunrebalance/code/shotgun.dm
+++ b/modular_skyrat/modules/shotgunrebalance/code/shotgun.dm
@@ -150,6 +150,7 @@
name = "frangible slug"
desc = "A weak anti materiel shell intended for dislodging airlock, breaking down barricades and structures. Not effective against people."
icon_state = "breacher"
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1, /datum/material/titanium = HALF_SHEET_MATERIAL_AMOUNT)
projectile_type = /obj/projectile/bullet/frangible_slug
/obj/projectile/bullet/frangible_slug
diff --git a/modular_skyrat/modules/simple_research/research_document.dm b/modular_skyrat/modules/simple_research/research_document.dm
index 59c5ce563bc..b55619ac8cd 100644
--- a/modular_skyrat/modules/simple_research/research_document.dm
+++ b/modular_skyrat/modules/simple_research/research_document.dm
@@ -53,7 +53,7 @@
to_chat(user, span_warning("You stopped researching."))
return
- user.mind.adjust_experience(/datum/skill/research, 5)
+ user.mind?.adjust_experience(/datum/skill/research, 5)
var/shape_two = show_radial_menu(user, src, radial_icons_cache, require_near = TRUE)
to_chat(user, span_notice("You begin to [pick(thinking_list)] about the [shape_two]... and then [pick(thinking_list)] about their [pick(shape_parts)]..."))
@@ -61,7 +61,7 @@
to_chat(user, span_warning("You stopped researching."))
return
- user.mind.adjust_experience(/datum/skill/research, 5)
+ user.mind?.adjust_experience(/datum/skill/research, 5)
var/shape_three = show_radial_menu(user, src, radial_icons_cache, require_near = TRUE)
to_chat(user, span_notice("You begin to [pick(thinking_list)] about the [shape_three]... and then [pick(thinking_list)] about their [pick(shape_parts)]..."))
@@ -69,7 +69,7 @@
to_chat(user, span_warning("You stopped researching."))
return
- user.mind.adjust_experience(/datum/skill/research, 5)
+ user.mind?.adjust_experience(/datum/skill/research, 5)
var/datum/simple_research/find_research = GLOB.simple_research["[shape_one][shape_two][shape_three]"]
if(!find_research)
@@ -99,7 +99,7 @@
else
spawned_scrap.spawning_item = find_research.research_item
- user.mind.adjust_experience(/datum/skill/research, 10)
+ user.mind?.adjust_experience(/datum/skill/research, 10)
qdel(find_research)
/obj/item/research_scrap
@@ -142,5 +142,5 @@
if(material_satisfied[1] && material_satisfied[2])
new spawning_item(get_turf(src))
to_chat(user, span_notice("You completed [src]."))
- user.mind.adjust_experience(/datum/skill/research, 5)
+ user.mind?.adjust_experience(/datum/skill/research, 5)
qdel(src)
diff --git a/modular_skyrat/modules/space_vines/scythes.dm b/modular_skyrat/modules/space_vines/scythes.dm
index 4f346613001..ab454f0b4d2 100644
--- a/modular_skyrat/modules/space_vines/scythes.dm
+++ b/modular_skyrat/modules/space_vines/scythes.dm
@@ -39,12 +39,20 @@
/obj/item/scythe/tier1
name = "scythe (tier 1)"
icon_state = "scythe_t1"
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ )
/obj/item/scythe/tier2
name = "scythe (tier 2)"
icon_state = "scythe_t2"
force = 15
hit_range = 1
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ )
/obj/item/scythe/tier3
name = "scythe (tier 3)"
diff --git a/modular_skyrat/modules/synths/code/bodyparts/ears.dm b/modular_skyrat/modules/synths/code/bodyparts/ears.dm
index 6c86a66584a..1c8a119700d 100644
--- a/modular_skyrat/modules/synths/code/bodyparts/ears.dm
+++ b/modular_skyrat/modules/synths/code/bodyparts/ears.dm
@@ -10,6 +10,10 @@
organ_flags = ORGAN_ROBOTIC | ORGAN_SYNTHETIC_FROM_SPECIES
overrides_sprite_datum_organ_type = TRUE
bodypart_overlay = /datum/bodypart_overlay/mutant/ears
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ )
/obj/item/organ/ears/synth/emp_act(severity)
. = ..()
diff --git a/modular_skyrat/modules/synths/code/bodyparts/eyes.dm b/modular_skyrat/modules/synths/code/bodyparts/eyes.dm
index 5704492ae73..f9200f95461 100644
--- a/modular_skyrat/modules/synths/code/bodyparts/eyes.dm
+++ b/modular_skyrat/modules/synths/code/bodyparts/eyes.dm
@@ -4,6 +4,10 @@
desc = "A very basic set of optical sensors with no extra vision modes or functions."
maxHealth = 1 * STANDARD_ORGAN_THRESHOLD
organ_flags = ORGAN_ROBOTIC | ORGAN_SYNTHETIC_FROM_SPECIES
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ )
/obj/item/organ/eyes/synth/emp_act(severity)
. = ..()
diff --git a/modular_skyrat/modules/synths/code/bodyparts/heart.dm b/modular_skyrat/modules/synths/code/bodyparts/heart.dm
index 6f141d96513..884ec9f29a0 100644
--- a/modular_skyrat/modules/synths/code/bodyparts/heart.dm
+++ b/modular_skyrat/modules/synths/code/bodyparts/heart.dm
@@ -8,6 +8,10 @@
maxHealth = 1.5 * STANDARD_ORGAN_THRESHOLD // 1.5x due to synthcode.tm being weird
zone = BODY_ZONE_CHEST
slot = ORGAN_SLOT_HEART
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ )
var/last_message_time = 0
/obj/item/organ/heart/synth/emp_act(severity)
diff --git a/modular_skyrat/modules/synths/code/bodyparts/limbs.dm b/modular_skyrat/modules/synths/code/bodyparts/limbs.dm
index 96dc0a34f26..0a109f95209 100644
--- a/modular_skyrat/modules/synths/code/bodyparts/limbs.dm
+++ b/modular_skyrat/modules/synths/code/bodyparts/limbs.dm
@@ -35,6 +35,11 @@
bodyshape = BODYSHAPE_HUMANOID
change_exempt_flags = NONE
dmg_overlay_type = "robotic"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.25,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT,
+ )
brute_modifier = SYNTH_BRUTE_MODIFIER
burn_modifier = SYNTH_BURN_MODIFIER
@@ -91,6 +96,11 @@
bodyshape = BODYSHAPE_HUMANOID
change_exempt_flags = NONE
dmg_overlay_type = "robotic"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3.25,
+ /datum/material/silver = SMALL_MATERIAL_AMOUNT,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT,
+ )
brute_modifier = SYNTH_BRUTE_MODIFIER
burn_modifier = SYNTH_BURN_MODIFIER
@@ -167,6 +177,10 @@
bodyshape = BODYSHAPE_HUMANOID
change_exempt_flags = NONE
dmg_overlay_type = "robotic"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT,
+ )
brute_modifier = SYNTH_BRUTE_MODIFIER
burn_modifier = SYNTH_BURN_MODIFIER
@@ -220,6 +234,10 @@
bodyshape = BODYSHAPE_HUMANOID
change_exempt_flags = NONE
dmg_overlay_type = "robotic"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT,
+ )
brute_modifier = SYNTH_BRUTE_MODIFIER
burn_modifier = SYNTH_BURN_MODIFIER
@@ -275,6 +293,10 @@
bodyshape = BODYSHAPE_HUMANOID
change_exempt_flags = NONE
dmg_overlay_type = "robotic"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 2,
+ )
brute_modifier = SYNTH_BRUTE_MODIFIER
burn_modifier = SYNTH_BURN_MODIFIER
@@ -330,6 +352,10 @@
bodyshape = BODYSHAPE_HUMANOID
change_exempt_flags = NONE
dmg_overlay_type = "robotic"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 2,
+ )
brute_modifier = SYNTH_BRUTE_MODIFIER
burn_modifier = SYNTH_BURN_MODIFIER
diff --git a/modular_skyrat/modules/synths/code/bodyparts/liver.dm b/modular_skyrat/modules/synths/code/bodyparts/liver.dm
index eb6ff656ac5..3651eb429d0 100644
--- a/modular_skyrat/modules/synths/code/bodyparts/liver.dm
+++ b/modular_skyrat/modules/synths/code/bodyparts/liver.dm
@@ -8,6 +8,10 @@
slot = ORGAN_SLOT_LIVER
maxHealth = 1 * STANDARD_ORGAN_THRESHOLD
organ_flags = ORGAN_ROBOTIC | ORGAN_SYNTHETIC_FROM_SPECIES
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ )
/obj/item/organ/liver/synth/emp_act(severity)
. = ..()
diff --git a/modular_skyrat/modules/synths/code/bodyparts/lungs.dm b/modular_skyrat/modules/synths/code/bodyparts/lungs.dm
index 583d58462ec..cd3a0657c17 100644
--- a/modular_skyrat/modules/synths/code/bodyparts/lungs.dm
+++ b/modular_skyrat/modules/synths/code/bodyparts/lungs.dm
@@ -13,6 +13,10 @@
slot = ORGAN_SLOT_LUNGS
maxHealth = 1.5 * STANDARD_ORGAN_THRESHOLD
organ_flags = ORGAN_ROBOTIC | ORGAN_SYNTHETIC_FROM_SPECIES
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ )
/obj/item/organ/lungs/synth/emp_act(severity)
. = ..()
diff --git a/modular_skyrat/modules/synths/code/bodyparts/stomach.dm b/modular_skyrat/modules/synths/code/bodyparts/stomach.dm
index 548fc25aa3b..7b2c06720a9 100644
--- a/modular_skyrat/modules/synths/code/bodyparts/stomach.dm
+++ b/modular_skyrat/modules/synths/code/bodyparts/stomach.dm
@@ -10,6 +10,10 @@
slot = "stomach"
desc = "A specialised mini reactor, for synthetic use only. Has a low-power mode to ensure baseline functions. Without this, synthetics are unable to stay powered."
organ_flags = ORGAN_ROBOTIC | ORGAN_SYNTHETIC_FROM_SPECIES
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ )
/obj/item/organ/stomach/synth/emp_act(severity)
. = ..()
diff --git a/modular_skyrat/modules/synths/code/bodyparts/tongue.dm b/modular_skyrat/modules/synths/code/bodyparts/tongue.dm
index 47ecc29fc33..e26631bcdd0 100644
--- a/modular_skyrat/modules/synths/code/bodyparts/tongue.dm
+++ b/modular_skyrat/modules/synths/code/bodyparts/tongue.dm
@@ -14,6 +14,10 @@
zone = BODY_ZONE_HEAD
slot = ORGAN_SLOT_TONGUE
organ_flags = ORGAN_ROBOTIC | ORGAN_SYNTHETIC_FROM_SPECIES
+ custom_materials = list(
+ /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ )
/obj/item/organ/tongue/synth/can_speak_language(language)
return TRUE
diff --git a/modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.dm b/modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.dm
index cc9dcaa1f5b..cfa17791363 100644
--- a/modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.dm
+++ b/modular_skyrat/modules/tarkon/code/guns/resonance_disruptor.dm
@@ -14,6 +14,13 @@
obj_flags = UNIQUE_RENAME
weapon_weight = WEAPON_LIGHT
gun_flags = NOT_A_REAL_GUN
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/uranium = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/diamond = SHEET_MATERIAL_AMOUNT,
+ )
/// the mode of the resonator; has three modes: auto (1), manual (2), and matrix (3)
var/mode = RESONATOR_MODE_AUTO
/// How devestating it is in manual mode. Yes, this is all copied from the resonator item
diff --git a/modular_skyrat/modules/tarkon/code/misc-fluff/research.dm b/modular_skyrat/modules/tarkon/code/misc-fluff/research.dm
index 907a8514096..aa232851be8 100644
--- a/modular_skyrat/modules/tarkon/code/misc-fluff/research.dm
+++ b/modular_skyrat/modules/tarkon/code/misc-fluff/research.dm
@@ -169,7 +169,10 @@
/datum/material/diamond = SHEET_MATERIAL_AMOUNT * 2,
/datum/material/bluespace = SHEET_MATERIAL_AMOUNT * 3
)
- build_path = /obj/item/construction/rcd/arcd/tarkon
+ transfered_materials = list(
+ /obj/item/construction/rcd/arcd/tarkon/loaded = /obj/item/construction/rcd/arcd/tarkon::custom_materials
+ )
+ build_path = /obj/item/construction/rcd/arcd/tarkon/loaded
category = list(
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_ENGINEERING_ADVANCED
)
diff --git a/modular_skyrat/modules/tarkon/code/misc-fluff/tools.dm b/modular_skyrat/modules/tarkon/code/misc-fluff/tools.dm
index 86a53f13656..0d612dcbf16 100644
--- a/modular_skyrat/modules/tarkon/code/misc-fluff/tools.dm
+++ b/modular_skyrat/modules/tarkon/code/misc-fluff/tools.dm
@@ -6,5 +6,7 @@
ranged = TRUE
canRturf = FALSE
max_matter = 300
- matter = 300
construction_upgrades = RCD_UPGRADE_FRAMES | RCD_UPGRADE_SIMPLE_CIRCUITS
+
+/obj/item/construction/rcd/arcd/tarkon/loaded
+ matter = 300
diff --git a/modular_skyrat/modules/tarkon/code/misc-fluff/turret.dm b/modular_skyrat/modules/tarkon/code/misc-fluff/turret.dm
index 6fbbb0c237b..ca406197953 100644
--- a/modular_skyrat/modules/tarkon/code/misc-fluff/turret.dm
+++ b/modular_skyrat/modules/tarkon/code/misc-fluff/turret.dm
@@ -82,6 +82,13 @@
icon = 'modular_skyrat/modules/tarkon/icons/obj/turret.dmi'
icon_state = "cerberus_assembly"
desc = "A set of assembly parts for a magazine-fed turret, requiring a receiver, servo and sensor along with construction. This one is for a \"Cerberus\" model turret type."
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 30,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 20,
+ /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 10,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT * 3,
+ )
design = /obj/item/storage/toolbox/emergency/turret/mag_fed/cerberus
/obj/item/turret_assembly/hoplite
@@ -89,4 +96,11 @@
icon = 'modular_skyrat/modules/tarkon/icons/obj/turret.dmi'
icon_state = "hoplite_assembly"
desc = "A set of assembly parts for a magazine-fed turret, requiring a receiver, servo and sensor along with construction. This one is for a \"Hoplite\" model turret type."
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 25,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 10,
+ /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 4,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2,
+ )
design = /obj/item/storage/toolbox/emergency/turret/mag_fed/hoplite
diff --git a/modular_skyrat/modules/tesh_augments/code/robot_bodyparts.dm b/modular_skyrat/modules/tesh_augments/code/robot_bodyparts.dm
index 417a0c26b56..ba60cc3fb73 100644
--- a/modular_skyrat/modules/tesh_augments/code/robot_bodyparts.dm
+++ b/modular_skyrat/modules/tesh_augments/code/robot_bodyparts.dm
@@ -23,6 +23,7 @@
icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT * 1.5)
unarmed_damage_low = TESHARI_PUNCH_LOW
unarmed_damage_high = TESHARI_PUNCH_HIGH
@@ -36,6 +37,7 @@
icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT * 1.5)
unarmed_damage_low = TESHARI_PUNCH_LOW
unarmed_damage_high = TESHARI_PUNCH_HIGH
@@ -49,6 +51,7 @@
icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT * 1.5)
unarmed_damage_low = TESHARI_PUNCH_LOW
unarmed_damage_high = TESHARI_PUNCH_HIGH
@@ -62,6 +65,7 @@
icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT * 1.5)
unarmed_damage_low = TESHARI_PUNCH_LOW
unarmed_damage_high = TESHARI_PUNCH_HIGH
@@ -75,6 +79,7 @@
icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(/datum/material/iron= SHEET_MATERIAL_AMOUNT * 6)
brute_modifier = 1
burn_modifier = 0.9
@@ -87,6 +92,7 @@
icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT * 0.75)
unarmed_damage_low = TESHARI_PUNCH_LOW
unarmed_damage_high = TESHARI_PUNCH_HIGH
@@ -350,6 +356,11 @@
icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 3,
+ )
unarmed_damage_low = TESHARI_PUNCH_LOW * 2
unarmed_damage_high = TESHARI_PUNCH_HIGH * 3
@@ -368,6 +379,11 @@
icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 3,
+ )
unarmed_damage_low = TESHARI_PUNCH_LOW * 2
unarmed_damage_high = TESHARI_PUNCH_HIGH * 3
@@ -386,6 +402,11 @@
icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 3,
+ )
unarmed_damage_low = TESHARI_PUNCH_LOW * 2
unarmed_damage_high = TESHARI_PUNCH_HIGH * 3
@@ -404,6 +425,11 @@
icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 3,
+ )
unarmed_damage_low = TESHARI_PUNCH_LOW * 2
unarmed_damage_high = TESHARI_PUNCH_HIGH * 3
@@ -416,78 +442,6 @@
biological_state = (BIO_METAL|BIO_JOINTED)
-/obj/item/bodypart/arm/left/robot/teshari_advanced
- name = "advanced left raptoral forelimb"
- desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon."
- icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
- icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
- bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
-
- unarmed_damage_low = TESHARI_PUNCH_LOW * 2
- unarmed_damage_high = TESHARI_PUNCH_HIGH * 3
-
- brute_modifier = 1
- burn_modifier = 0.9
-
- max_damage = LIMB_MAX_HP_ADVANCED
- body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED
-
- biological_state = (BIO_METAL|BIO_JOINTED)
-
-/obj/item/bodypart/arm/right/robot/teshari_advanced
- name = "advanced right raptoral forelimb"
- desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon."
- icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
- icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
- bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
-
- unarmed_damage_low = TESHARI_PUNCH_LOW * 2
- unarmed_damage_high = TESHARI_PUNCH_HIGH * 3
-
- brute_modifier = 1
- burn_modifier = 0.9
-
- max_damage = LIMB_MAX_HP_ADVANCED
- body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED
-
- biological_state = (BIO_METAL|BIO_JOINTED)
-
-/obj/item/bodypart/leg/left/robot/teshari_advanced
- name = "advanced left raptoral hindlimb"
- desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon."
- icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
- icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
- bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
-
- unarmed_damage_low = TESHARI_PUNCH_LOW * 2
- unarmed_damage_high = TESHARI_PUNCH_HIGH * 3
-
- brute_modifier = 1
- burn_modifier = 0.9
-
- max_damage = LIMB_MAX_HP_ADVANCED
- body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED
-
- biological_state = (BIO_METAL|BIO_JOINTED)
-
-/obj/item/bodypart/leg/right/robot/teshari_advanced
- name = "advanced right raptoral hindlimb"
- desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon."
- icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
- icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi'
- bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM
-
- unarmed_damage_low = TESHARI_PUNCH_LOW * 2
- unarmed_damage_high = TESHARI_PUNCH_HIGH * 3
-
- brute_modifier = 1
- burn_modifier = 0.9
-
- max_damage = LIMB_MAX_HP_ADVANCED
- body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED
-
- biological_state = (BIO_METAL|BIO_JOINTED)
-
#undef ROBOTIC_LIGHT_BRUTE_MSG
#undef ROBOTIC_MEDIUM_BRUTE_MSG
#undef ROBOTIC_HEAVY_BRUTE_MSG
diff --git a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/strange_rock.dm b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/strange_rock.dm
index 401b4456ad7..0650cb63abb 100644
--- a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/strange_rock.dm
+++ b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/strange_rock.dm
@@ -140,7 +140,7 @@
if(DIG_ROCK)
to_chat(user, span_notice("You successfully dig around the item."))
- user.mind.adjust_experience(/datum/skill/research, xeno_hammer.dig_amount)
+ user.mind?.adjust_experience(/datum/skill/research, xeno_hammer.dig_amount)
if(istype(attacking_item, /obj/item/xenoarch/brush))
var/obj/item/xenoarch/brush/xeno_brush = attacking_item
@@ -157,7 +157,7 @@
if(BRUSH_UNCOVER)
to_chat(user, span_notice("You successfully brush around the item, fully revealing the item!"))
- user.mind.adjust_experience(/datum/skill/research, 20)
+ user.mind?.adjust_experience(/datum/skill/research, 20)
return
if(BRUSH_NONE)
@@ -172,7 +172,7 @@
if(get_measured())
to_chat(user, span_notice("You successfully attach a holo measuring tape to the strange rock; the strange rock will now report its dug depth always!"))
- user.mind.adjust_experience(/datum/skill/research, 5)
+ user.mind?.adjust_experience(/datum/skill/research, 5)
return
to_chat(user, span_warning("The strange rock was already marked with a holo measuring tape."))
@@ -187,7 +187,7 @@
if(get_scanned(item_scanner.scan_advanced))
to_chat(user, span_notice("You successfully attach a holo scanning module to the strange rock; the strange rock will now report its depth information always!"))
- user.mind.adjust_experience(/datum/skill/research, 5)
+ user.mind?.adjust_experience(/datum/skill/research, 5)
if(adv_scanned)
to_chat(user, span_notice("The rock's item depth is being reported!"))
diff --git a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_item.dm b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_item.dm
index bd6cb4becac..862edcac54a 100644
--- a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_item.dm
+++ b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_item.dm
@@ -26,7 +26,7 @@
return
loc.balloon_alert(user, "magnified!")
- user.mind.adjust_experience(/datum/skill/research, 5)
+ user.mind?.adjust_experience(/datum/skill/research, 5)
spawn_magnified(magnified_number)
return
diff --git a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_tool.dm b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_tool.dm
index 82c07a183f3..5bf3e1abdd7 100644
--- a/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_tool.dm
+++ b/modular_skyrat/modules/xenoarch/code/modules/research/xenoarch/xenoarch_tool.dm
@@ -51,42 +51,49 @@
icon_state = "hammer1"
dig_amount = 1
dig_speed = 0.5 SECONDS
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/hammer/cm2
name = "hammer (2cm)"
icon_state = "hammer2"
dig_amount = 2
dig_speed = 1 SECONDS
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/hammer/cm3
name = "hammer (3cm)"
icon_state = "hammer3"
dig_amount = 3
dig_speed = 1.5 SECONDS
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/hammer/cm4
name = "hammer (4cm)"
icon_state = "hammer4"
dig_amount = 4
dig_speed = 2 SECONDS
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/hammer/cm5
name = "hammer (5cm)"
icon_state = "hammer5"
dig_amount = 5
dig_speed = 2.5 SECONDS
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/hammer/cm6
name = "hammer (6cm)"
icon_state = "hammer6"
dig_amount = 6
dig_speed = 3 SECONDS
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/hammer/cm10
name = "hammer (10cm)"
icon_state = "hammer10"
dig_amount = 10
dig_speed = 5 SECONDS
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/hammer/adv
name = "advanced hammer"
@@ -94,6 +101,7 @@
dig_amount = 1
dig_speed = 1
advanced = TRUE
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT)
// BRUSHES
@@ -102,11 +110,13 @@
desc = "A brush that is used to uncover the secrets of the past from strange rocks."
var/dig_speed = 3 SECONDS
icon_state = "brush"
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/brush/adv
name = "advanced brush"
dig_speed = 0.5 SECONDS
icon_state = "adv_brush"
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT)
// MISC.
@@ -114,6 +124,7 @@
name = "measuring tape"
desc = "A measuring tape specifically produced to measure the depth that has been dug into strange rocks."
icon_state = "tape"
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/handheld_scanner
name = "handheld scanner"
@@ -121,17 +132,20 @@
icon_state = "scanner"
var/scanning_speed = 3 SECONDS
var/scan_advanced = FALSE
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/handheld_scanner/advanced
name = "advanced handheld scanner"
icon_state = "adv_scanner"
scanning_speed = 0.5 SECONDS
scan_advanced = TRUE
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/handheld_recoverer
name = "handheld recoverer"
desc = "An item that has the capabilities to recover items lost due to time."
icon_state = "recoverer"
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/xenoarch/handheld_recoverer/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
var/turf/target_turf = get_turf(interacting_with)
@@ -183,6 +197,7 @@
icon_state = "xenoarch_belt"
content_overlays = FALSE
custom_premium_price = PAYCHECK_CREW * 2
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/storage/belt/utility/xenoarch/Initialize(mapload)
. = ..()
@@ -212,6 +227,7 @@
var/range = null
var/spam_protection = FALSE //If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/storage/bag/xenoarch/Initialize(mapload)
. = ..()
@@ -276,6 +292,7 @@
name = "advanced xenoarch mining satchel"
icon_state = "adv_satchel"
insert_speed = 0.1 SECONDS
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/diamond = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/storage/bag/xenoarch/adv/Initialize(mapload)
. = ..()
diff --git a/modular_zubbers/code/datums/bodypart_overlays/bodypart_overlay.dm b/modular_zubbers/code/datums/bodypart_overlays/bodypart_overlay.dm
deleted file mode 100644
index 3a75e9094f3..00000000000
--- a/modular_zubbers/code/datums/bodypart_overlays/bodypart_overlay.dm
+++ /dev/null
@@ -1,15 +0,0 @@
-/// Whether or not this bodypart_overlay should have an emissive at that layer.
-/// Intended to be used by `/datum/bodypart_overlay/mutant` and its subtypes.
-/// If you use this, completely override it, don't call parent.
-/datum/bodypart_overlay/proc/needs_emissive_at_layer(layer)
- SHOULD_CALL_PARENT(FALSE)
-
- return FALSE
-
-/**
- * Returns the emissive appearance copy of the `base_overlay`, if it's meant to have one.
- * Assumes that you ran through `needs_emissive_at_layer()` beforehand. Mainly intended
- * for `/datum/bodypart_overlay/mutant` and its subtypes.
- */
-/datum/bodypart_overlay/proc/get_emissive_overlay(mutable_appearance/base_overlay, atom/owner)
- return emissive_appearance_copy(base_overlay, owner)
diff --git a/modular_zubbers/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm b/modular_zubbers/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm
index 2fae94bb9f4..312fb11d48f 100644
--- a/modular_zubbers/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm
+++ b/modular_zubbers/code/datums/bodypart_overlays/mutant_bodypart_overlay.dm
@@ -43,9 +43,15 @@
// We do this here like this so that we handle matrixed color bodypart overlays and emissives.
/datum/bodypart_overlay/mutant/get_overlay(obj/item/bodypart/limb, layer_index, layer_real)
inherit_color(limb) // If draw_color is not set yet, go ahead and do that (matches upstream, needed for ORGAN_COLOR_INHERIT overlays)
- var/gotten_images = get_images(limb, layer_index, layer_real)
- color_images(gotten_images, limb, layer_index)
- return add_emissives(gotten_images, limb)
+ . = get_images(limb, layer_index, layer_real)
+ color_images(., limb, layer_index)
+ . = add_emissives(., limb)
+
+/datum/bodypart_overlay/mutant/snout/get_overlay(obj/item/bodypart/limb, layer_index, layer_real)
+ . = ..()
+
+/datum/bodypart_overlay/mutant/snout/set_appearance_from_dna(datum/dna/dna, accessory_name, feature_key, obj/item/bodypart/limb)
+ . = ..()
/// Generate a unique key based on our sprites. So that if we've aleady drawn these sprites,
/// they can be found in the cache and wont have to be drawn again (blessing and curse, but mostly curse)
@@ -245,6 +251,18 @@
return appearance
+/* // TO-DO: Fix this mess.
+// Special case - fish tail
+/datum/bodypart_overlay/mutant/tail/fish/get_singular_image(image_icon_state, image_layer, mob/living/carbon/human/owner, icon_override = null, obj/item/bodypart/limb)
+ var/mutable_appearance/appearance = ..()
+ // We add all appearances the parent bodypart has to the tail to inherit scales and fancy effects
+ // but most other organs don't want to inherit those so we do it here and not on parent
+ for (var/datum/bodypart_overlay/texture/texture in limb.bodypart_overlays)
+ if(texture.can_draw_on_bodypart(limb, limb.owner, limb.is_husked))
+ texture.modify_bodypart_appearance(appearance)
+ return appearance
+*/
+
/**
* Helper proc to add the appropriate emissives to the overlays, based on the preferences.
*
@@ -280,11 +298,9 @@
return
emissive_eligibility_by_color_index = list()
- var/i = 1
for(var/eligibility in emissive_eligibility)
- emissive_eligibility_by_color_index[num2text(i)] = eligibility
- i++
+ emissive_eligibility_by_color_index += eligibility
#undef MAX_MATRIXED_COLORS
#undef ALPHA_OPAQUE
diff --git a/modular_zubbers/code/datums/components/crafting/guncrafting.dm b/modular_zubbers/code/datums/components/crafting/guncrafting.dm
index 07b98b6fcef..e3c8ebf2a51 100644
--- a/modular_zubbers/code/datums/components/crafting/guncrafting.dm
+++ b/modular_zubbers/code/datums/components/crafting/guncrafting.dm
@@ -40,6 +40,6 @@
item_flags = SLOWS_WHILE_IN_HAND
slowdown = 3
custom_materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT * 40,
- /datum/material/alloy/plastitanium = SHEET_MATERIAL_AMOUNT * 40,
- )
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 40,
+ /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 40,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 40)
diff --git a/modular_zubbers/code/game/Items/nerdcrowbar.dm b/modular_zubbers/code/game/Items/nerdcrowbar.dm
index 28bfda5a5b9..9cd41c1034f 100644
--- a/modular_zubbers/code/game/Items/nerdcrowbar.dm
+++ b/modular_zubbers/code/game/Items/nerdcrowbar.dm
@@ -7,3 +7,8 @@
toolspeed = 0.25
demolition_mod = 2
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/bluespace = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/uranium = SHEET_MATERIAL_AMOUNT,
+ )
diff --git a/modular_zubbers/code/game/machinery/burger_reactor/reactor_rod.dm b/modular_zubbers/code/game/machinery/burger_reactor/reactor_rod.dm
index 156b82a70ed..9680918f7e5 100644
--- a/modular_zubbers/code/game/machinery/burger_reactor/reactor_rod.dm
+++ b/modular_zubbers/code/game/machinery/burger_reactor/reactor_rod.dm
@@ -2,6 +2,7 @@
name = "\improper RB-MK2 reactor rod"
desc = "A rod for the RB-MK2 reactor. Usually filled with a mix of tritium and an inert gas, such as nitrogen."
icon = 'modular_zubbers/icons/obj/equipment/burger_reactor.dmi'
+ custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*5, /datum/material/uranium = SMALL_MATERIAL_AMOUNT*2)
icon_state = "platform_rod"
inhand_icon_state = null
worn_icon_state = null
diff --git a/modular_zubbers/code/game/machinery/burger_reactor/reactor_upgrades.dm b/modular_zubbers/code/game/machinery/burger_reactor/reactor_upgrades.dm
index d30924c276d..c5d611494dc 100644
--- a/modular_zubbers/code/game/machinery/burger_reactor/reactor_upgrades.dm
+++ b/modular_zubbers/code/game/machinery/burger_reactor/reactor_upgrades.dm
@@ -31,6 +31,7 @@
/obj/item/rbmk_upgrade/auto_vent
name = "\improper RB-MK2 software upgrade disk - auto vent"
desc = "A disk that allows you to install an upgrade into the RB-MK that automatically controls vent usage to maximize power gain at all temperature setups."
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*1.25, /datum/material/glass = SHEET_MATERIAL_AMOUNT*1.25, /datum/material/silver =SHEET_MATERIAL_AMOUNT, /datum/material/titanium =SHEET_MATERIAL_AMOUNT)
/obj/item/rbmk_upgrade/auto_vent/apply_upgrade(obj/machinery/power/rbmk2/machine)
machine.auto_vent_upgrade = TRUE
@@ -43,6 +44,7 @@
/obj/item/rbmk_upgrade/safeties
name = "\improper RB-MK2 software upgrade disk - safeties optimization"
desc = "A disk that allows you to install an upgrade into the RB-MK that effectively decreases the safeties threshold from 75% to 95%, preventing premature ejectulation."
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*1.25, /datum/material/glass = SHEET_MATERIAL_AMOUNT*1.25, /datum/material/gold =SHEET_MATERIAL_AMOUNT, /datum/material/uranium =SHEET_MATERIAL_AMOUNT)
/obj/item/rbmk_upgrade/safeties/apply_upgrade(obj/machinery/power/rbmk2/machine)
machine.safeties_upgrade = TRUE
@@ -56,6 +58,7 @@
/obj/item/rbmk_upgrade/overclock
name = "\improper RB-MK2 software upgrade disk - overclock"
desc = "A disk that allows you to install an upgrade into the RB-MK that enables overlocking of the reactor."
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*1.25, /datum/material/glass = SHEET_MATERIAL_AMOUNT*1.25, /datum/material/bluespace =SHEET_MATERIAL_AMOUNT, /datum/material/uranium =SHEET_MATERIAL_AMOUNT)
/obj/item/rbmk_upgrade/overclock/apply_upgrade(obj/machinery/power/rbmk2/machine)
machine.overclocked_upgrade = TRUE
diff --git a/modular_zubbers/code/game/machinery/syndiepad.dm b/modular_zubbers/code/game/machinery/syndiepad.dm
index 2afa3b28076..3e922af7467 100644
--- a/modular_zubbers/code/game/machinery/syndiepad.dm
+++ b/modular_zubbers/code/game/machinery/syndiepad.dm
@@ -136,6 +136,7 @@
name = "tarkon bounty pad"
greyscale_colors = CIRCUIT_COLOR_GENERIC
build_path = /obj/machinery/piratepad/syndiepad/tarkon
+ custom_materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT)
/obj/machinery/piratepad/syndiepad/tarkon
name = "Tarkon bounty pad"
@@ -144,10 +145,10 @@
for processing. No returns!"
circuit = /obj/item/circuitboard/machine/syndiepad/tarkon
-
/obj/item/circuitboard/computer/syndiepad/tarkon
name = "tarkon bounty control terminal"
build_path = /obj/machinery/computer/piratepad_control/syndiepad/tarkon
+ custom_materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT)
/obj/machinery/computer/piratepad_control/syndiepad/tarkon
name = "Tarkon bounty control terminal"
diff --git a/modular_zubbers/code/game/objects/items/robot/robot_upgrades/adv_plasmacutter_upgrade.dm b/modular_zubbers/code/game/objects/items/robot/robot_upgrades/adv_plasmacutter_upgrade.dm
index 201106f150b..7bac101ae78 100644
--- a/modular_zubbers/code/game/objects/items/robot/robot_upgrades/adv_plasmacutter_upgrade.dm
+++ b/modular_zubbers/code/game/objects/items/robot/robot_upgrades/adv_plasmacutter_upgrade.dm
@@ -15,6 +15,12 @@
name = "mining cyborg advanced plasma cutter"
desc = "An upgrade for the mining cyborgs plasma cutter, bringing it to advanced operation."
icon_state = "module_miner"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
+ )
require_model = TRUE
model_type = list(/obj/item/robot_model/miner)
model_flags = BORG_MODEL_MINER
diff --git a/modular_zubbers/code/modules/autolathe_components_adv/advpartdisks.dm b/modular_zubbers/code/modules/autolathe_components_adv/advpartdisks.dm
index 46310c13187..47ee58c2bfc 100644
--- a/modular_zubbers/code/modules/autolathe_components_adv/advpartdisks.dm
+++ b/modular_zubbers/code/modules/autolathe_components_adv/advpartdisks.dm
@@ -1,6 +1,7 @@
//Disks that let autolathes print upgraded parts!
/obj/item/disk/design_disk/advanced_parts
name = "advanced components autolathe design disk"
+ custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*1.5)
/obj/item/disk/design_disk/advanced_parts/Initialize(mapload)
. = ..()
@@ -33,6 +34,7 @@
/obj/item/disk/design_disk/high_tech_parts
name = "high-tech components autolathe design disk"
+ custom_materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*1.5, /datum/material/gold = SMALL_MATERIAL_AMOUNT*1.5, /datum/material/silver = SMALL_MATERIAL_AMOUNT*1.5)
/obj/item/disk/design_disk/high_tech_parts/Initialize(mapload)
. = ..()
diff --git a/modular_zubbers/code/modules/cargo/expressconsole.dm b/modular_zubbers/code/modules/cargo/expressconsole.dm
index 91216424e00..34f0fe35698 100644
--- a/modular_zubbers/code/modules/cargo/expressconsole.dm
+++ b/modular_zubbers/code/modules/cargo/expressconsole.dm
@@ -26,6 +26,7 @@
name = "Tarkon Express Supply Console"
build_path = /obj/machinery/computer/cargo/express/interdyne/tarkon
contraband = TRUE
+ custom_materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT)
/obj/machinery/computer/cargo/express/interdyne/tarkon
name = "tarkon express supply console"
diff --git a/modular_zubbers/code/modules/clothing/suits/armor.dm b/modular_zubbers/code/modules/clothing/suits/armor.dm
index 83b7d2bb16d..b4a227a800b 100644
--- a/modular_zubbers/code/modules/clothing/suits/armor.dm
+++ b/modular_zubbers/code/modules/clothing/suits/armor.dm
@@ -307,11 +307,11 @@
)
custom_materials = list(
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 44.8,
- /datum/material/alloy/plastitanium = SHEET_MATERIAL_AMOUNT * 40,
+ /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 40,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 40,
/datum/material/gold = SHEET_MATERIAL_AMOUNT * 1.25,
/datum/material/silver = SHEET_MATERIAL_AMOUNT * 0.75,
- /datum/material/glass = SMALL_MATERIAL_AMOUNT * 3
- )
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 3)
/obj/item/clothing/suit/hooded/secjuggernaut/examine(mob/user)
. = ..()
diff --git a/modular_zubbers/code/modules/clothing/suits/nerd.dm b/modular_zubbers/code/modules/clothing/suits/nerd.dm
index a55cebf4989..41aff31abba 100644
--- a/modular_zubbers/code/modules/clothing/suits/nerd.dm
+++ b/modular_zubbers/code/modules/clothing/suits/nerd.dm
@@ -56,6 +56,15 @@
slowdown = 0
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 20,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/diamond = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/uranium = SHEET_MATERIAL_AMOUNT,
+ /datum/material/bluespace = SHEET_MATERIAL_AMOUNT
+ )
+
/datum/armor/nerdsuit
acid = 50
bio = 100
diff --git a/modular_zubbers/code/modules/debug_tools/physgun.dm b/modular_zubbers/code/modules/debug_tools/physgun.dm
index 5a2af1aa4e6..fbbf95d52ee 100644
--- a/modular_zubbers/code/modules/debug_tools/physgun.dm
+++ b/modular_zubbers/code/modules/debug_tools/physgun.dm
@@ -19,6 +19,12 @@
throw_range = 1
drop_sound = 'sound/items/handling/tools/screwdriver_drop.ogg'
pickup_sound = 'modular_zubbers/sound/phystools/physgun_pickup.ogg'
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 10,
+ /datum/material/uranium = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/bluespace = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/diamond = SHEET_MATERIAL_AMOUNT * 3,
+ )
/// The dragged object
var/atom/movable/handled_atom
diff --git a/modular_zubbers/code/modules/ghost_wavedefence/wave_def.dm b/modular_zubbers/code/modules/ghost_wavedefence/wave_def.dm
index 3cdf41bf503..7ced65781f1 100644
--- a/modular_zubbers/code/modules/ghost_wavedefence/wave_def.dm
+++ b/modular_zubbers/code/modules/ghost_wavedefence/wave_def.dm
@@ -33,6 +33,10 @@
icon = 'modular_zubbers/icons/obj/machines/wavedef_items.dmi'
icon_state = "hackc"
desc = "A small tool with a bunch of ones and zeros on it. The label say 'For emergency use only!'"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT
+ )
/mob/living/basic/node_drone/hackc
name = "Hack-C drone"
diff --git a/modular_zubbers/code/modules/mob/living/carbon/human/human_update_icons.dm b/modular_zubbers/code/modules/mob/living/carbon/human/human_update_icons.dm
index 41d9d084feb..9c8d7663fec 100644
--- a/modular_zubbers/code/modules/mob/living/carbon/human/human_update_icons.dm
+++ b/modular_zubbers/code/modules/mob/living/carbon/human/human_update_icons.dm
@@ -10,12 +10,13 @@
var/mutable_appearance/underwear_overlay
var/female_sprite_flags = FEMALE_UNIFORM_FULL // the default gender shaping
if(underwear_accessory)
+ var/icon_file_path = underwear_accessory.greyscale_config ? SSgreyscale.GetColoredIconByType(underwear_accessory.greyscale_config, underwear_accessory.greyscale_colors) : underwear_accessory.icon
var/underwear_icon_state = underwear_accessory.icon_state
if(underwear_accessory.has_digitigrade && (bodyshape & BODYSHAPE_DIGITIGRADE))
underwear_icon_state += "_d"
female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY // for digi gender shaping
if(dna.species.sexes && physique == FEMALE && underwear_accessory.gender == MALE)
- underwear_overlay = mutable_appearance(wear_female_version(underwear_icon_state, underwear_accessory.icon, female_sprite_flags), layer = -BODY_LAYER)
+ underwear_overlay = mutable_appearance(wear_female_version(underwear_icon_state, icon_file_path, underwear_accessory.icon, female_sprite_flags), layer = -BODY_LAYER)
else
underwear_overlay = mutable_appearance(underwear_accessory.icon, underwear_icon_state, -BODY_LAYER)
if(!underwear_accessory.use_static)
@@ -35,9 +36,10 @@
if(undershirt && !(underwear_visibility & UNDERWEAR_HIDE_SHIRT))
var/datum/sprite_accessory/clothing/undershirt/undershirt_accessory = SSaccessories.undershirt_list[undershirt]
if(undershirt_accessory)
+ var/icon_file_path = undershirt_accessory.greyscale_config ? SSgreyscale.GetColoredIconByType(undershirt_accessory.greyscale_config, undershirt_accessory.greyscale_colors) : undershirt_accessory.icon
var/mutable_appearance/undershirt_overlay
if(dna.species.sexes && physique == FEMALE)
- undershirt_overlay = mutable_appearance(wear_female_version(undershirt_accessory.icon_state, undershirt_accessory.icon), layer = -BODY_LAYER)
+ undershirt_overlay = mutable_appearance(wear_female_version(undershirt_accessory.icon_state, icon_file_path, undershirt_accessory.icon), layer = -BODY_LAYER)
else
undershirt_overlay = mutable_appearance(undershirt_accessory.icon, undershirt_accessory.icon_state, -BODY_LAYER)
if(!undershirt_accessory.use_static)
diff --git a/modular_zubbers/code/modules/nanites/items/items.dm b/modular_zubbers/code/modules/nanites/items/items.dm
index d70fa243725..1fe8967f916 100644
--- a/modular_zubbers/code/modules/nanites/items/items.dm
+++ b/modular_zubbers/code/modules/nanites/items/items.dm
@@ -7,6 +7,7 @@
lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi'
righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi'
desc = "A hand-held body scanner able to detect nanites and their programming."
+ custom_materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
obj_flags = CONDUCTS_ELECTRICITY
item_flags = NOBLUDGEON
slot_flags = ITEM_SLOT_BELT
@@ -14,7 +15,6 @@
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
throw_range = 7
- custom_materials = list(/datum/material/iron=200)
/obj/item/nanite_scanner/attack(mob/living/M, mob/living/carbon/human/user)
user.visible_message(
diff --git a/modular_zubbers/code/modules/nanites/items/program_disks.dm b/modular_zubbers/code/modules/nanites/items/program_disks.dm
index efa6e6ad15f..7d58e5e6f6d 100644
--- a/modular_zubbers/code/modules/nanites/items/program_disks.dm
+++ b/modular_zubbers/code/modules/nanites/items/program_disks.dm
@@ -2,6 +2,7 @@
/obj/item/disk/nanite_program
name = "nanite program disk"
desc = "A disk capable of storing nanite programs. Can be customized using a Nanite Programming Console."
+ custom_materials = list(/datum/material/iron = 300, /datum/material/glass = 100)
var/program_type
var/datum/nanite_program/program
diff --git a/modular_zubbers/code/modules/nanites/items/remote.dm b/modular_zubbers/code/modules/nanites/items/remote.dm
index 8ed634cb7cf..9bacf5d9e57 100644
--- a/modular_zubbers/code/modules/nanites/items/remote.dm
+++ b/modular_zubbers/code/modules/nanites/items/remote.dm
@@ -12,6 +12,7 @@
icon = 'modular_zubbers/icons/obj/devices/nanite_devices.dmi'
icon_state = "nanite_remote"
item_flags = NOBLUDGEON
+ custom_materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
var/locked = FALSE //Can be locked, so it can be given to users with a set code and mode
var/mode = REMOTE_MODE_OFF
var/list/saved_settings = list()
@@ -184,6 +185,7 @@
name = "nanite communication remote"
desc = "A device that can send text messages to specific programs."
icon_state = "nanite_comm_remote"
+ custom_materials = list(/datum/material/glass = 500, /datum/material/iron = 500)
var/comm_message = ""
/obj/item/nanite_remote/comm/afterattack(atom/target, mob/user, etc)
diff --git a/modular_zubbers/code/modules/power/powerator.dm b/modular_zubbers/code/modules/power/powerator.dm
index beebace1276..eec7907efd4 100644
--- a/modular_zubbers/code/modules/power/powerator.dm
+++ b/modular_zubbers/code/modules/power/powerator.dm
@@ -240,6 +240,7 @@
name = "Tarkon Powerator"
greyscale_colors = CIRCUIT_COLOR_SUPPLY
build_path = /obj/machinery/powerator/tarkon
+ custom_materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT)
/obj/machinery/powerator/tarkon
name = "Tarkon powerator"
diff --git a/modular_zubbers/code/modules/projectiles/boxes_magazines/external/pistol.dm b/modular_zubbers/code/modules/projectiles/boxes_magazines/external/pistol.dm
index 70de2d3d5e9..de52a0fa84e 100644
--- a/modular_zubbers/code/modules/projectiles/boxes_magazines/external/pistol.dm
+++ b/modular_zubbers/code/modules/projectiles/boxes_magazines/external/pistol.dm
@@ -42,6 +42,7 @@
icon_state = "powerpack_small-12"
ammo_type = /obj/item/ammo_casing/caseless/c22hl
max_ammo = 12
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT)
/obj/item/ammo_box/magazine/recharge/ntusp/laser
name = "small lethal power pack"
@@ -53,9 +54,11 @@
/obj/item/ammo_box/magazine/recharge/ntusp/laser/empty
start_empty = TRUE // so you cant field convert mags to full laser ones
+ custom_materials = null
/obj/item/ammo_box/magazine/recharge/ntusp/empty
start_empty = TRUE
+ custom_materials = null
/obj/item/ammo_box/magazine/recharge/ntusp/emp_act(severity) //shooting physical bullets wont stop you dying to an EMP
. = ..()
@@ -77,6 +80,7 @@
max_ammo = 5
ammo_band_icon = null
ammo_band_color = null
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, /datum/material/plastic = SHEET_MATERIAL_AMOUNT)
/obj/item/ammo_box/speedloader/security/update_icon_state()
. = ..()
diff --git a/modular_zubbers/code/modules/research/designs/mechfab_designs.dm b/modular_zubbers/code/modules/research/designs/mechfab_designs.dm
index aa723d9c78f..1d8591a38d5 100644
--- a/modular_zubbers/code/modules/research/designs/mechfab_designs.dm
+++ b/modular_zubbers/code/modules/research/designs/mechfab_designs.dm
@@ -5,11 +5,14 @@
id = "blanksynth"
build_type = MECHFAB
construction_time = 60 SECONDS
- materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 20,
- /datum/material/glass = SHEET_MATERIAL_AMOUNT * 10,
- /datum/material/silver = SHEET_MATERIAL_AMOUNT * 0.5,
- /datum/material/gold = SHEET_MATERIAL_AMOUNT * 0.25)
+ materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 20,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 10,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT * 0.5,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 0.25
+ )
category = list(RND_CATEGORY_MECHFAB_SYNTH + RND_SUBCATEGORY_MECHFAB_SYNTH_PARTS)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /mob/living/carbon/human/species/synth/empty
@@ -251,7 +254,6 @@
/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
)
build_path = /obj/item/mod/module/hat_stabilizer
- inherit_materials = DESIGN_INHERIT_MATS_SPECIAL
category = list(
RND_CATEGORY_MODSUIT_MODULES + RND_SUBCATEGORY_MODSUIT_MODULES_GENERAL
)
diff --git a/modular_zubbers/code/modules/research/designs/medical_designs.dm b/modular_zubbers/code/modules/research/designs/medical_designs.dm
index 68660032c33..b75e30b081a 100644
--- a/modular_zubbers/code/modules/research/designs/medical_designs.dm
+++ b/modular_zubbers/code/modules/research/designs/medical_designs.dm
@@ -4,11 +4,13 @@
id = "ci_empathic_sensor"
build_type = PROTOLATHE | MECHFAB
materials = list(
- /datum/material/iron = SMALL_MATERIAL_AMOUNT * 6,
- /datum/material/glass = SMALL_MATERIAL_AMOUNT * 6,
- /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
- /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
- /datum/material/bluespace = SHEET_MATERIAL_AMOUNT,)
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT * 6,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 6,
+ /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/bluespace = SHEET_MATERIAL_AMOUNT,
+ )
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/organ/cyberimp/brain/empathic_sensor
category = list(
RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_UTILITY
@@ -22,10 +24,11 @@
id = "wound_scanner_internal"
build_type = PROTOLATHE | MECHFAB
materials = list(
- /datum/material/iron =SHEET_MATERIAL_AMOUNT * 1.5,
- /datum/material/glass =SHEET_MATERIAL_AMOUNT*2,
- /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
- )
+ /datum/material/iron =SHEET_MATERIAL_AMOUNT * 1.5,
+ /datum/material/glass =SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT,
+ )
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/organ/cyberimp/brain/wound_scanner
category = list(
RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_HEALTH
@@ -39,10 +42,11 @@
id = "surgical_processor"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(
- /datum/material/iron =SHEET_MATERIAL_AMOUNT * 2.5,
- /datum/material/glass =SHEET_MATERIAL_AMOUNT*2,
- /datum/material/silver =SHEET_MATERIAL_AMOUNT*2,
- )
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2.5,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2,
+ )
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/surgical_processor
category = list(
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_MEDICAL_ALIEN
@@ -55,7 +59,13 @@
id = "defibrillator"
build_type = PROTOLATHE | AWAY_LATHE
build_path = /obj/item/defibrillator
- materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT*4, /datum/material/glass = SHEET_MATERIAL_AMOUNT*2, /datum/material/silver =SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/gold =HALF_SHEET_MATERIAL_AMOUNT * 1.5)
+ materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 4,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/silver =SHEET_MATERIAL_AMOUNT * 1.5,
+ /datum/material/gold =HALF_SHEET_MATERIAL_AMOUNT * 1.5,
+ )
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_MEDICAL
)
diff --git a/modular_zubbers/code/modules/research/designs/misc_designs.dm b/modular_zubbers/code/modules/research/designs/misc_designs.dm
index d4912bdfccf..df9caa70148 100644
--- a/modular_zubbers/code/modules/research/designs/misc_designs.dm
+++ b/modular_zubbers/code/modules/research/designs/misc_designs.dm
@@ -3,7 +3,11 @@
desc = "A disk for storing plant genetic data."
id = "diskplantgene"
build_type = PROTOLATHE
- materials = list(/datum/material/iron=200, /datum/material/glass = 100)
+ materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 2,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 1,
+ )
+ transfered_materials = list(/obj/item/disk/computer/plantgene = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 3, /datum/material/glass = SMALL_MATERIAL_AMOUNT))
build_path = /obj/item/disk/computer/plantgene
category = list("Electronics")
departmental_flags = DEPARTMENT_BITFLAG_SERVICE
@@ -13,7 +17,7 @@
desc = "An empty nitrogen tank."
id = "nitrogen_tank"
build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT)
+ materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT)
build_path = /obj/item/tank/internals/nitrogen/empty
category = list(RND_CATEGORY_INITIAL,
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_GAS_TANKS,
@@ -69,10 +73,11 @@
construction_time = 5 SECONDS
//just about half the materials of a sechudimplant but no silver
materials = list(
- /datum/material/iron = SMALL_MATERIAL_AMOUNT*3,
- /datum/material/glass = SMALL_MATERIAL_AMOUNT*3,
- /datum/material/gold = SMALL_MATERIAL_AMOUNT*4,
+ /datum/material/iron = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 3,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 4,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/organ/cyberimp/eyes/hud/civilian
category = list(
RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_UTILITY
@@ -84,6 +89,7 @@
id = "umbrella"
build_type = PROTOLATHE | AUTOLATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.75, /datum/material/plastic = SMALL_MATERIAL_AMOUNT * 0.25)
+ transfered_materials = list(/obj/item/umbrella = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.5))
build_path = /obj/item/umbrella
category = list(
RND_CATEGORY_INITIAL,
diff --git a/modular_zubbers/code/modules/research/designs/nerd_designs.dm b/modular_zubbers/code/modules/research/designs/nerd_designs.dm
index 3cc00d3e052..9e15f7d6f15 100644
--- a/modular_zubbers/code/modules/research/designs/nerd_designs.dm
+++ b/modular_zubbers/code/modules/research/designs/nerd_designs.dm
@@ -6,12 +6,12 @@
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
build_path = /obj/item/clothing/suit/armor/nerd
materials = list(
- /datum/material/iron = SHEET_MATERIAL_AMOUNT*20,
- /datum/material/silver = SHEET_MATERIAL_AMOUNT*5,
- /datum/material/gold = SHEET_MATERIAL_AMOUNT*5,
- /datum/material/diamond=SHEET_MATERIAL_AMOUNT*3,
- /datum/material/uranium=SHEET_MATERIAL_AMOUNT,
- /datum/material/bluespace=SHEET_MATERIAL_AMOUNT
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 20,
+ /datum/material/silver = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/gold = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/diamond = SHEET_MATERIAL_AMOUNT * 3,
+ /datum/material/uranium = SHEET_MATERIAL_AMOUNT,
+ /datum/material/bluespace = SHEET_MATERIAL_AMOUNT
)
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE
@@ -25,10 +25,12 @@
departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
build_path = /obj/item/clothing/glasses/regular/hipster/nerd
materials = list(
+ /datum/material/glass = SMALL_MATERIAL_AMOUNT * 2.5,
/datum/material/iron = SHEET_MATERIAL_AMOUNT,
- /datum/material/diamond=SHEET_MATERIAL_AMOUNT*2,
- /datum/material/bluespace=SHEET_MATERIAL_AMOUNT*2
+ /datum/material/diamond = SHEET_MATERIAL_AMOUNT*2,
+ /datum/material/bluespace = SHEET_MATERIAL_AMOUNT*2
)
+ transfered_materials = list(/obj/item/clothing/glasses/regular/hipster/nerd = list(/datum/material/glass = SMALL_MATERIAL_AMOUNT * 2.5))
category = list(
RND_CATEGORY_TOOLS + RND_SUBCATEGORY_EQUIPMENT_SCIENCE
)
diff --git a/modular_zubbers/code/modules/research/designs/weapon_designs.dm b/modular_zubbers/code/modules/research/designs/weapon_designs.dm
index 1cfdbe7c525..2cc38133888 100644
--- a/modular_zubbers/code/modules/research/designs/weapon_designs.dm
+++ b/modular_zubbers/code/modules/research/designs/weapon_designs.dm
@@ -3,6 +3,7 @@
desc = "A standard magazine for compatible grenade launcher."
id = "solgrenade_mag"
build_type = PROTOLATHE | AWAY_LATHE
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10)
build_path = /obj/item/ammo_box/magazine/c980_grenade/starts_empty
category = list(
@@ -14,6 +15,7 @@
desc = "An extended capacity box magazine for compatible grenade launcher."
id = "solgrenade_extmag"
build_type = PROTOLATHE | AWAY_LATHE
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10)
build_path = /obj/item/ammo_box/magazine/c980_grenade/drum/starts_empty
category = list(
@@ -56,6 +58,7 @@
id = "s12g_buckshot"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 20, /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ transfered_materials = list(/obj/item/ammo_box/advanced/s12gauge/buckshot = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/advanced/s12gauge/buckshot
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -68,6 +71,7 @@
id = "s12g_slug"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 25, /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ transfered_materials = list(/obj/item/ammo_box/advanced/s12gauge = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/advanced/s12gauge
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -80,6 +84,7 @@
id = "s12g_flechette"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 20, /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 6, /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ transfered_materials = list(/obj/item/ammo_box/advanced/s12gauge/flechette = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/advanced/s12gauge/flechette
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -92,6 +97,7 @@
id = "s12g_incinslug"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 25, /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ transfered_materials = list(/obj/item/ammo_box/advanced/s12gauge/incendiary = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/advanced/s12gauge/incendiary
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -103,7 +109,8 @@
desc = "A 12 gauge ammunition box for shotgun shells."
id = "s12g_bslug"
build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10, /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15, /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ transfered_materials = list(/obj/item/ammo_box/advanced/s12gauge/bean = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/advanced/s12gauge/bean
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -115,7 +122,8 @@
desc = "A 12 gauge ammunition box for shotgun shells."
id = "s12g_rubber"
build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10, /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15, /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ transfered_materials = list(/obj/item/ammo_box/advanced/s12gauge/rubber = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/advanced/s12gauge/rubber
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -128,6 +136,7 @@
id = "s12g_db"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 20, /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 15 , /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ transfered_materials = list(/obj/item/ammo_box/advanced/s12gauge/dragonsbreath = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/advanced/s12gauge/dragonsbreath
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -140,6 +149,7 @@
id = "s12g_br"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 20, /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 35 , /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 25)
+ transfered_materials = list(/obj/item/ammo_box/advanced/s12gauge/frangible = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/advanced/s12gauge/frangible
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -152,6 +162,7 @@
id = "s12g_laser"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 15, /datum/material/gold = SHEET_MATERIAL_AMOUNT * 10)
+ transfered_materials = list(/obj/item/ammo_box/advanced/s12gauge/laser = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/advanced/s12gauge/laser
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -163,7 +174,7 @@
desc = "A 12 gauge ammunition box for shotgun shells."
id = "s12g_huntingslug"
build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 8)
+ materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15)
build_path = /obj/item/ammo_box/advanced/s12gauge/hunter
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -175,7 +186,7 @@
desc = "A standard magazine for pistol using 9x25mm Mk2."
id = "m9mm_mag"
build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 12)
+ materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15)
build_path = /obj/item/ammo_box/magazine/m9mm
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -189,9 +200,10 @@
id = "m9mm_sec"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(
- /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 30,
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 15,
/datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT * 3,
)
+ transfered_materials = list(/obj/item/ammo_box/magazine/security = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/magazine/security
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -204,9 +216,10 @@
id = "m9mm_sec_rocket"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(
- /datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT * 10,
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 15,
/datum/material/plasma = HALF_SHEET_MATERIAL_AMOUNT * 5,
)
+ transfered_materials = list(/obj/item/ammo_box/magazine/security/rocket = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15))
build_path = /obj/item/ammo_box/magazine/security/rocket
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -218,7 +231,7 @@
desc = "A standard magazine for pistol using .45 rounds."
id = "m45_mag"
build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5)
+ materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 15)
build_path = /obj/item/ammo_box/magazine/m45
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -231,6 +244,7 @@
id = "ntusp_conversion"
build_type = PROTOLATHE
materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/ntusp_conversion_kit
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -248,6 +262,7 @@
/datum/material/plasma = SHEET_MATERIAL_AMOUNT * 0.75,
/datum/material/diamond = SHEET_MATERIAL_AMOUNT * 0.25,
)
+ transfered_materials = list(/obj/item/ammo_box/magazine/recharge/ntusp = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT))
build_path = /obj/item/ammo_box/magazine/recharge/ntusp
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -265,6 +280,7 @@
/datum/material/plasma = SHEET_MATERIAL_AMOUNT * 0.75,
/datum/material/diamond = SHEET_MATERIAL_AMOUNT * 0.25,
)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/ammo_box/magazine/recharge/ntmp5
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -334,7 +350,7 @@
/datum/material/diamond = SHEET_MATERIAL_AMOUNT * 1,
/datum/material/bluespace = SHEET_MATERIAL_AMOUNT * 3,
)
-
+ transfered_materials = list(/obj/item/ammo_box/magazine/wt550m9/compressed = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2))
build_path = /obj/item/ammo_box/magazine/wt550m9/compressed
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
diff --git a/modular_zubbers/code/modules/silicons/borgs/code/robot_upgrade.dm b/modular_zubbers/code/modules/silicons/borgs/code/robot_upgrade.dm
index 9be766710c0..5696f477b26 100644
--- a/modular_zubbers/code/modules/silicons/borgs/code/robot_upgrade.dm
+++ b/modular_zubbers/code/modules/silicons/borgs/code/robot_upgrade.dm
@@ -20,6 +20,7 @@
name = "Research cyborg advanced Health Analyzer"
desc = "An upgrade to the Research model cyborg's standard health analyzer."
icon_state = "module_medical"
+ custom_materials = list(/datum/material/iron =SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 1.25, /datum/material/silver = SHEET_MATERIAL_AMOUNT, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT * 1.5)
require_model = TRUE
model_type = list(/obj/item/robot_model/sci)
model_flags = BORG_MODEL_RESEARCH
@@ -31,6 +32,7 @@
/obj/item/borg/upgrade/inducer_sci
name = "Research integrated power inducer"
desc = "An integrated inducer that can charge a device's internal cell from power provided by the cyborg."
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2)
require_model = TRUE
model_type = list(/obj/item/robot_model/sci)
model_flags = BORG_MODEL_RESEARCH
@@ -41,6 +43,10 @@
name = "Research cyborg Rapid Part Exchange Device Upgrade"
desc = "An upgrade to the Research model cyborg's standard RPED."
icon_state = "module_engineer"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2.5,
+ )
require_model = TRUE
model_type = list(/obj/item/robot_model/sci)
model_flags = BORG_MODEL_RESEARCH
@@ -94,6 +100,7 @@
name = "Engineering Cyborg Rapid Lighting Device Upgrade"
desc = "An upgrade to allow a cyborg to use a Rapid Lighting Device."
icon_state = "module_engineer"
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 7.5, /datum/material/glass =SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/silver = HALF_SHEET_MATERIAL_AMOUNT * 2.5)
require_model = TRUE
model_type = list(/obj/item/robot_model/engineering, /obj/item/robot_model/janitor)
model_flags = list(BORG_MODEL_ENGINEERING, BORG_MODEL_JANITOR)
@@ -109,7 +116,7 @@
model_type = list(/obj/item/robot_model/miner, /obj/item/robot_model/sci)
model_flags = list(BORG_MODEL_MINER, BORG_MODEL_RESEARCH)
items_to_add = list(/obj/item/storage/bag/xenoarch/adv)
-
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2, /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = SMALL_MATERIAL_AMOUNT * 2.5)
// Mining Borg Vent Pinpointer
@@ -121,6 +128,7 @@
model_type = list(/obj/item/robot_model/miner)
model_flags = BORG_MODEL_MINER
items_to_add = list(/obj/item/pinpointer/vent)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2.5, /datum/material/plastic = SHEET_MATERIAL_AMOUNT)
//Borg Proto-Kinetic Accelerators
@@ -171,6 +179,7 @@
model_flags = BORG_MODEL_MINER
items_to_add = list(/obj/item/gun/energy/recharge/kinetic_accelerator/railgun/cyborg)
items_to_remove = list(/obj/item/gun/energy/recharge/kinetic_accelerator)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/uranium = SHEET_MATERIAL_AMOUNT * 3, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, /datum/material/plastic = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/kinetic_accelerator/repeater/cyborg
name = /obj/item/gun/energy/recharge/kinetic_accelerator/repeater::name
@@ -181,6 +190,7 @@
model_flags = BORG_MODEL_MINER
items_to_add = list(/obj/item/gun/energy/recharge/kinetic_accelerator/repeater/cyborg)
items_to_remove = list(/obj/item/gun/energy/recharge/kinetic_accelerator)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 6, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, /datum/material/plastic = SHEET_MATERIAL_AMOUNT * 2)
/obj/item/borg/upgrade/kinetic_accelerator/shotgun/cyborg
name = /obj/item/gun/energy/recharge/kinetic_accelerator/shotgun::name
@@ -191,6 +201,7 @@
model_flags = BORG_MODEL_MINER
items_to_add = list(/obj/item/gun/energy/recharge/kinetic_accelerator/shotgun/cyborg)
items_to_remove = list(/obj/item/gun/energy/recharge/kinetic_accelerator)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 6, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 2, /datum/material/plastic = SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/kinetic_accelerator/glock/cyborg
name = /obj/item/gun/energy/recharge/kinetic_accelerator/glock::name
@@ -201,6 +212,7 @@
model_flags = BORG_MODEL_MINER
items_to_add = list(/obj/item/gun/energy/recharge/kinetic_accelerator/glock/cyborg)
items_to_remove = list(/obj/item/gun/energy/recharge/kinetic_accelerator)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, /datum/material/gold = SHEET_MATERIAL_AMOUNT * 2, /datum/material/plastic = SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/kinetic_accelerator/shockwave/cyborg
name = /obj/item/gun/energy/recharge/kinetic_accelerator/shockwave::name
@@ -211,6 +223,7 @@
model_flags = BORG_MODEL_MINER
items_to_add = list(/obj/item/gun/energy/recharge/kinetic_accelerator/shockwave/cyborg)
items_to_remove = list(/obj/item/gun/energy/recharge/kinetic_accelerator)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, /datum/material/diamond = SHEET_MATERIAL_AMOUNT * 2, /datum/material/plastic = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/kinetic_accelerator/m79/cyborg
name = /obj/item/gun/energy/recharge/kinetic_accelerator/m79::name
@@ -221,6 +234,7 @@
model_flags = BORG_MODEL_MINER
items_to_add = list(/obj/item/gun/energy/recharge/kinetic_accelerator/m79/cyborg)
items_to_remove = list(/obj/item/gun/energy/recharge/kinetic_accelerator)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/uranium = SHEET_MATERIAL_AMOUNT * 3, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2, /datum/material/plastic = SHEET_MATERIAL_AMOUNT, /datum/material/bluespace = SHEET_MATERIAL_AMOUNT)
/// "Good Borg" Obedience Training
/mob/living/silicon/robot
@@ -231,6 +245,10 @@
desc = "A module that greatly upgrades the ability of borgs to display affection."
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
icon_state = "module_lust"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT,
+ )
custom_price = 0
items_to_add = list(/obj/item/kinky_shocker,
@@ -262,6 +280,10 @@
name = "janitor detailing toolset"
desc = "Upgrades a janitor cyborgs tiling capabilities while adding the ability to modify floor decals."
icon_state = "module_janitor"
+ custom_materials = list(
+ /datum/material/iron =SHEET_MATERIAL_AMOUNT*15.25,
+ /datum/material/glass =SHEET_MATERIAL_AMOUNT*1.5,
+ )
require_model = TRUE
model_type = list(/obj/item/robot_model/janitor)
model_flags = BORG_MODEL_JANITOR
@@ -274,6 +296,10 @@
name = "integrated cable coil"
desc = "Condensed spooling technology allows cabling technology in janitorial modules."
icon_state = "module_janitor"
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT,
+ /datum/material/glass = SHEET_MATERIAL_AMOUNT,
+ )
require_model = TRUE
model_type = list(/obj/item/robot_model/janitor)
model_flags = BORG_MODEL_JANITOR
@@ -285,6 +311,12 @@
/obj/item/borg/upgrade/robotics_rcd
name = "Research cyborg synthetic repair tool"
desc = "A cut down RCD designed to assist in synthetic repairs."
+ custom_materials = list(
+ /datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5,
+ /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT,
+ /datum/material/plasma = SHEET_MATERIAL_AMOUNT,
+ /datum/material/gold = SMALL_MATERIAL_AMOUNT * 5,
+ )
require_model = TRUE
model_type = list(/obj/item/robot_model/sci)
model_flags = BORG_MODEL_RESEARCH
diff --git a/modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.dm b/modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.dm
index 537989d2759..8e554d6cf62 100644
--- a/modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.dm
+++ b/modular_zubbers/code/modules/syndicate_offstation/code/misc-fluff/research.dm
@@ -60,6 +60,7 @@
id = "cargoconsole_syndicate"
build_type = AWAY_IMPRINTER
materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 1)
+ transfered_materials = list(/obj/item/circuitboard/computer/cargo/express/interdyne = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT))
build_path = /obj/item/circuitboard/computer/cargo/express/interdyne
category = list(
RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO
@@ -72,6 +73,7 @@
id = "bountypad_syndicate"
build_type = AWAY_IMPRINTER
materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 1)
+ transfered_materials = list(/obj/item/circuitboard/machine/syndiepad = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT))
build_path = /obj/item/circuitboard/machine/syndiepad
category = list(
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_CONSTRUCTION_MACHINERY
@@ -84,6 +86,7 @@
id = "bountyconsole_syndicate"
build_type = AWAY_IMPRINTER
materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 1)
+ transfered_materials = list(/obj/item/circuitboard/computer/syndiepad = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT))
build_path = /obj/item/circuitboard/computer/syndiepad
category = list(
RND_CATEGORY_COMPUTER + RND_SUBCATEGORY_COMPUTER_CARGO
@@ -96,6 +99,7 @@
id = "powerator_syndicate"
build_type = AWAY_IMPRINTER
materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 1)
+ transfered_materials = list(/obj/item/circuitboard/machine/powerator/interdyne = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT))
build_path = /obj/item/circuitboard/machine/powerator/interdyne
category = list(
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_CONSTRUCTION_MACHINERY
@@ -108,6 +112,7 @@
id = "exofab_syndicate"
build_type = AWAY_IMPRINTER
materials = list(/datum/material/glass = SHEET_MATERIAL_AMOUNT * 1)
+ transfered_materials = list(/obj/item/circuitboard/machine/mechfab/interdyne = list(/datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT))
build_path = /obj/item/circuitboard/machine/mechfab/interdyne
category = list(
RND_CATEGORY_MACHINE + RND_SUBCATEGORY_CONSTRUCTION_MACHINERY
@@ -120,7 +125,7 @@
desc = "A Syndicate Implant restricted firing pin."
id = "syndicate_firing_pin"
build_type = PROTOLATHE
- materials = list(/datum/material/silver = SMALL_MATERIAL_AMOUNT * 6, /datum/material/diamond = SMALL_MATERIAL_AMOUNT * 6, /datum/material/uranium =SMALL_MATERIAL_AMOUNT * 2)
+ materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 3)
build_path =/obj/item/firing_pin/implant/pindicate
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_FIRING_PINS
@@ -132,7 +137,7 @@
desc = "Standard issue headset for syndicate civillians."
id = "syndicate_headset"
build_type = PROTOLATHE
- materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*1)
+ materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 0.7)
build_path = /obj/item/radio/headset/syndicateciv
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_TELECOMMS
@@ -145,6 +150,7 @@
id = "interdyne_encryption"
build_type = PROTOLATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*1)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/encryptionkey/headset_syndicate/interdyne
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_TELECOMMS
@@ -157,6 +163,7 @@
id = "cybersun_encryption"
build_type = PROTOLATHE
materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*1)
+ inherit_materials = DESIGN_DONT_INHERIT_MATS
build_path = /obj/item/encryptionkey/headset_syndicate/cybersun
category = list(
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_TELECOMMS
diff --git a/modular_zubbers/code/modules/tarkon/code/borg_content.dm b/modular_zubbers/code/modules/tarkon/code/borg_content.dm
index 9609d32849d..0f3eecb7eca 100644
--- a/modular_zubbers/code/modules/tarkon/code/borg_content.dm
+++ b/modular_zubbers/code/modules/tarkon/code/borg_content.dm
@@ -47,6 +47,7 @@
icon = 'modular_skyrat/modules/borgs/icons/robot_items.dmi'
icon_state = "module_tarkon"
new_model = /obj/item/robot_model/tarkon
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma = SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/robot_model/tarkon
name = "Port Tarkon Prototype"
@@ -184,6 +185,7 @@
/obj/item/healthanalyzer,
/obj/item/blood_filter
)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma = SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/tarkon/tarkon_engineering
name = "Tarkon Engineering Module"
@@ -221,6 +223,7 @@
/obj/item/multitool/cyborg,
/obj/item/lightreplacer
)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma = SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/tarkon/tarkon_security
name = "Tarkon Security Module"
@@ -236,6 +239,7 @@
/obj/item/borg/projectile_dampen,
/obj/item/gun/energy/laser/cyborg // The nature of tarkon requires a gun.
)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma = SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/tarkon/tarkon_cargo
name = "Tarkon Cargo Module"
@@ -272,6 +276,7 @@
/obj/item/pickaxe/drill,
/obj/item/storage/bag/ore/cyborg
)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma = SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/tarkon/tarkon_research
name = "Tarkon Research Module"
@@ -288,6 +293,7 @@
/obj/item/experi_scanner/bluespace,
/obj/item/storage/bag/xenoarch/adv
)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma = SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/tarkon/tarkon_service // Lesser used on tarkon things like chef upgrades, and janitorial. Might get subdivided further since my GOD theres alot here
name = "Tarkon Service Module"
@@ -328,6 +334,7 @@
/obj/item/plant_analyzer,
/obj/item/storage/bag/plants
)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma = SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/borg/upgrade/tarkon/tarkon_janitor
name = "Tarkon Janitorial Module"
@@ -350,6 +357,7 @@
/obj/item/storage/bag/trash,
/obj/item/mop
)
+ custom_materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5, /datum/material/plasma = SHEET_MATERIAL_AMOUNT, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT, /datum/material/gold = HALF_SHEET_MATERIAL_AMOUNT)
///Prevents tarkon borgs from taking too many tarkon upgrades.
/obj/item/borg/upgrade/tarkon/action(mob/living/silicon/robot/borg, mob/user)
diff --git a/modular_zubbers/master_files/code/modules/research/designs/biogenerator_designs.dm b/modular_zubbers/master_files/code/modules/research/designs/biogenerator_designs.dm
index 753f25aef54..bc80ab695d1 100644
--- a/modular_zubbers/master_files/code/modules/research/designs/biogenerator_designs.dm
+++ b/modular_zubbers/master_files/code/modules/research/designs/biogenerator_designs.dm
@@ -71,7 +71,7 @@
/datum/design/biogen/diskplantgene
name = "Plant Data Disk"
- id = "diskplantgene"
+ id = "biogen-diskplantgene"
materials = list(/datum/material/biomass = 10)
build_path = /obj/item/disk/computer/plantgene
category = list(RND_CATEGORY_INITIAL, RND_CATEGORY_BIO_MATERIALS)
diff --git a/modular_zubbers/master_files/code/modules/research/designs/weapon_designs.dm b/modular_zubbers/master_files/code/modules/research/designs/weapon_designs.dm
index 480150a02ff..0c044930569 100644
--- a/modular_zubbers/master_files/code/modules/research/designs/weapon_designs.dm
+++ b/modular_zubbers/master_files/code/modules/research/designs/weapon_designs.dm
@@ -4,6 +4,7 @@
id = "wt550_ammo_normal"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10)
+ transfered_materials = list(/obj/item/ammo_box/magazine/wt550m9 = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 2))
build_path = /obj/item/ammo_box/magazine/wt550m9
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -16,6 +17,7 @@
id = "wt550_ammo_ap"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 12, /datum/material/silver = SHEET_MATERIAL_AMOUNT * 2)
+ transfered_materials = list(/obj/item/ammo_box/magazine/wt550m9/wtap = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 3, /datum/material/silver = SHEET_MATERIAL_AMOUNT * 0.6))
build_path = /obj/item/ammo_box/magazine/wt550m9/wtap
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
@@ -28,6 +30,7 @@
id = "wt550_ammo_incendiary"
build_type = PROTOLATHE | AWAY_LATHE
materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 10, /datum/material/plasma = SHEET_MATERIAL_AMOUNT * 2, /datum/material/silver = SHEET_MATERIAL_AMOUNT , /datum/material/glass = SHEET_MATERIAL_AMOUNT)
+ transfered_materials = list(/obj/item/ammo_box/magazine/wt550m9/wtic = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 3, /datum/material/silver = SHEET_MATERIAL_AMOUNT * 0.6, /datum/material/glass = HALF_SHEET_MATERIAL_AMOUNT))
build_path = /obj/item/ammo_box/magazine/wt550m9/wtic
category = list(
RND_CATEGORY_WEAPONS + RND_SUBCATEGORY_WEAPONS_AMMO
diff --git a/modular_zubbers/modules/ammo_workbench/code/design_disks.dm b/modular_zubbers/modules/ammo_workbench/code/design_disks.dm
index 1b3f831c001..1a5b9e47b27 100644
--- a/modular_zubbers/modules/ammo_workbench/code/design_disks.dm
+++ b/modular_zubbers/modules/ammo_workbench/code/design_disks.dm
@@ -11,6 +11,7 @@
name = "advanced munitions datadisk"
desc = "An datadisk filled with advanced munition fabrication data for the ammunition workbench, including lethal ammotypes if not previously enabled. \
No parties are liable for any incidents that occur if safeties were circumvented beforehand."
+ custom_materials = list(/datum/material/iron = HALF_SHEET_MATERIAL_AMOUNT)
/obj/item/disk/ammo_workbench/advanced/on_bench_install(obj/machinery/ammo_workbench/ammobench)
ammobench.allowed_harmful = TRUE
diff --git a/modular_zubbers/modules/taur_mechanics/taur_body.dm b/modular_zubbers/modules/taur_mechanics/taur_body.dm
index 2a5fb653ee3..0d2a8ca81a0 100644
--- a/modular_zubbers/modules/taur_mechanics/taur_body.dm
+++ b/modular_zubbers/modules/taur_mechanics/taur_body.dm
@@ -94,8 +94,9 @@
/datum/bodypart_overlay/mutant/taur_body
feature_key = FEATURE_TAUR
- layers = list(EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_ADJACENT = BODY_ADJ_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
+ layers = list(EXTERNAL_FRONT_OVER_HEAD = ABOVE_BODY_FRONT_HEAD_LAYER, EXTERNAL_FRONT_UNDER_CLOTHES = BODY_FRONT_UNDER_CLOTHES, EXTERNAL_FRONT = BODY_FRONT_LAYER, EXTERNAL_ADJACENT = BODY_ADJ_LAYER, EXTERNAL_BEHIND = BODY_BEHIND_LAYER)
color_source = ORGAN_COLOR_OVERRIDE
+ offset_location = ENTIRE_BODY
/// If this taur body can lay down
var/can_lay_down = FALSE
diff --git a/tgstation.dme b/tgstation.dme
index 3a506f77817..2fe051e7d56 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -518,7 +518,6 @@
#include "code\__DEFINES\~skyrat_defines\_globalvars\logging.dm"
#include "code\__DEFINES\~skyrat_defines\_globalvars\lists\mapping.dm"
#include "code\__DEFINES\~skyrat_defines\_HELPERS\atmos_mapping_helpers.dm"
-#include "code\__DEFINES\~skyrat_defines\_HELPERS\lighting.dm"
#include "code\__DEFINES\~skyrat_defines\_HELPERS\offset_index.dm"
#include "code\__DEFINES\~skyrat_defines\signals\signals_fleshmind.dm"
#include "code\__DEFINES\~skyrat_defines\signals\signals_human.dm"
@@ -9153,7 +9152,6 @@
#include "modular_zubbers\code\datums\ai_laws\laws_antagonistic.dm"
#include "modular_zubbers\code\datums\ai_laws\laws_neutral.dm"
#include "modular_zubbers\code\datums\ai_laws\laws_station_sided.dm"
-#include "modular_zubbers\code\datums\bodypart_overlays\bodypart_overlay.dm"
#include "modular_zubbers\code\datums\bodypart_overlays\mutant_bodypart_overlay.dm"
#include "modular_zubbers\code\datums\brain_damage\magic.dm"
#include "modular_zubbers\code\datums\components\nanites.dm"
diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/JobsPage.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/JobsPage.tsx
index 5a614c35f45..ed39e0de582 100644
--- a/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/JobsPage.tsx
+++ b/tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/JobsPage.tsx
@@ -227,6 +227,10 @@ function JobRow(props: JobRowProps) {
const experienceNeeded = job_required_experience?.[name];
const daysLeft = job_days_left ? job_days_left[name] : 0;
+ // BUBBER EDIT ADDITION - ALTERNATIVE_JOB_TITLES
+ const alt_title_selected = data.job_alt_titles?.[name] ?? name;
+ // BUBBER EDIT END
+
let rightSide: ReactNode;
if (experienceNeeded) {
@@ -256,6 +260,19 @@ function JobRow(props: JobRowProps) {
);
+ // BUBBER EDIT ADDITION BEGIN - Species restricted jobs
+ } else if (
+ data.species_restricted_jobs &&
+ data.species_restricted_jobs.indexOf(name) !== -1
+ ) {
+ rightSide = (
+
+
+ Bad species
+
+
+ );
+ // BUBBER EDIT ADDITION END
} else {
rightSide = (
+ {/* BUBBER EDIT CHANGE BEGIN - ALTERNATIVE_JOB_TITLES - ORIGINAL:
{name}
-
+ */}
+ {!job.alt_titles ? (
+
+ {name}
+
+ ) : (
+
+
+ act('set_job_title', { job: name, new_title: value })
+ }
+ />
+
+ )}
+ {/* BUBBER EDIT CHANGE END */}
{assignedProfileSlot !== null && (