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 && (