mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 22:19:30 +01:00
Various upstream related fixes
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
/*
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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."))
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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?"
|
||||
|
||||
@@ -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*/
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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++
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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]")
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
+7
-2
@@ -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
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"))
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
name = "alien bonesetter"
|
||||
desc = "A reversed engineered bonesetter... <b> This does not look nice to be on the receiving end of... </b>."
|
||||
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... <b> This does not look nice to be on the receiving end of... </b>."
|
||||
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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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?
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
+1
-24
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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."))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)"
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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)
|
||||
. = ..()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user