mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 03:59:59 +01:00
# Conflicts: # .github/CODEOWNERS # .github/workflows/compile_changelogs.yml # .github/workflows/stale.yml # SQL/database_changelog.md # _maps/map_files/CatwalkStation/CatwalkStation_2023.dmm # code/__DEFINES/atom_hud.dm # code/__DEFINES/inventory.dm # code/__DEFINES/mobs.dm # code/__DEFINES/species_clothing_paths.dm # code/__DEFINES/subsystems.dm # code/__DEFINES/surgery.dm # code/__HELPERS/global_lists.dm # code/_globalvars/lists/maintenance_loot.dm # code/_globalvars/traits/_traits.dm # code/controllers/subsystem/minor_mapping.dm # code/controllers/subsystem/processing/quirks.dm # code/controllers/subsystem/shuttle.dm # code/datums/components/palette.dm # code/datums/components/surgery_initiator.dm # code/datums/diseases/advance/advance.dm # code/datums/hud.dm # code/datums/mood.dm # code/datums/mutations/chameleon.dm # code/datums/quirks/negative_quirks/nyctophobia.dm # code/datums/status_effects/debuffs/debuffs.dm # code/datums/status_effects/debuffs/drunk.dm # code/datums/status_effects/debuffs/slime/slime_leech.dm # code/datums/weather/weather.dm # code/game/data_huds.dm # code/game/objects/items.dm # code/game/objects/items/devices/scanners/health_analyzer.dm # code/game/objects/items/frog_statue.dm # code/game/objects/items/rcd/RLD.dm # code/game/objects/items/robot/items/hypo.dm # code/game/objects/items/stacks/medical.dm # code/game/objects/items/stacks/wrap.dm # code/game/objects/items/storage/garment.dm # code/game/objects/items/tools/medical/defib.dm # code/game/objects/items/weaponry.dm # code/game/objects/items/weaponry/melee/misc.dm # code/game/objects/structures/crates_lockers/closets/secure/security.dm # code/game/objects/structures/curtains.dm # code/game/objects/structures/dresser.dm # code/game/objects/structures/girders.dm # code/game/objects/structures/maintenance.dm # code/game/objects/structures/mirror.dm # code/modules/admin/greyscale_modify_menu.dm # code/modules/admin/verbs/light_debug.dm # code/modules/antagonists/ashwalker/ashwalker.dm # code/modules/antagonists/heretic/knowledge/starting_lore.dm # code/modules/antagonists/ninja/ninjaDrainAct.dm # code/modules/art/paintings.dm # code/modules/client/preferences.dm # code/modules/client/verbs/ooc.dm # code/modules/clothing/head/wig.dm # code/modules/events/disease_outbreak.dm # code/modules/holodeck/holo_effect.dm # code/modules/jobs/job_types/head_of_security.dm # code/modules/jobs/job_types/security_officer.dm # code/modules/library/skill_learning/generic_skillchips/point.dm # code/modules/mining/lavaland/ash_flora.dm # code/modules/mining/lavaland/mining_loot/megafauna/ash_drake.dm # code/modules/mob/dead/new_player/new_player.dm # code/modules/mob/living/basic/guardian/guardian.dm # code/modules/mob/living/basic/space_fauna/space_dragon/space_dragon.dm # code/modules/mob/living/carbon/carbon.dm # code/modules/mob/living/carbon/human/human.dm # code/modules/mob/living/carbon/human/human_defines.dm # code/modules/mob/living/carbon/life.dm # code/modules/mob/living/living.dm # code/modules/mob/living/living_defines.dm # code/modules/mob/mob.dm # code/modules/mob_spawn/ghost_roles/mining_roles.dm # code/modules/mod/mod_control.dm # code/modules/mod/modules/modules_general.dm # code/modules/modular_computers/computers/item/computer_ui.dm # code/modules/paperwork/paper.dm # code/modules/paperwork/paperbin.dm # code/modules/power/lighting/light.dm # code/modules/projectiles/guns/energy/kinetic_accelerator.dm # code/modules/projectiles/projectile.dm # code/modules/reagents/chemistry/reagents/drinks/alcohol_reagents.dm # code/modules/reagents/chemistry/reagents/food_reagents.dm # code/modules/reagents/chemistry/reagents/other_reagents.dm # code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm # code/modules/research/xenobiology/crossbreeding/_clothing.dm # code/modules/research/xenobiology/crossbreeding/prismatic.dm # code/modules/surgery/advanced/brainwashing.dm # code/modules/surgery/advanced/lobotomy.dm # code/modules/surgery/amputation.dm # code/modules/surgery/blood_filter.dm # code/modules/surgery/bodyparts/_bodyparts.dm # code/modules/surgery/brain_surgery.dm # code/modules/surgery/cavity_implant.dm # code/modules/surgery/coronary_bypass.dm # code/modules/surgery/gastrectomy.dm # code/modules/surgery/healing.dm # code/modules/surgery/limb_augmentation.dm # code/modules/surgery/organ_manipulation.dm # code/modules/surgery/revival.dm # code/modules/surgery/sleeper_protocol.dm # code/modules/surgery/surgery_helpers.dm # code/modules/surgery/surgery_step.dm # code/modules/unit_tests/_unit_tests.dm # code/modules/unit_tests/designs.dm # code/modules/unit_tests/icon_state_worn.dm # code/modules/unit_tests/screenshots/screenshot_antag_icons_cultist.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_headrevolutionary.png # code/modules/unit_tests/screenshots/screenshot_antag_icons_provocateur.png # code/modules/unit_tests/screenshots/screenshot_husk_body.png # code/modules/unit_tests/screenshots/screenshot_husk_body_missing_limbs.png # icons/map_icons/clothing/head/_head.dmi # icons/map_icons/clothing/shoes.dmi # icons/map_icons/items/_item.dmi # icons/mob/huds/hud.dmi # icons/mob/inhands/64x64_lefthand.dmi # icons/mob/inhands/64x64_righthand.dmi # icons/obj/machines/computer.dmi # tgui/packages/tgui/interfaces/OperatingComputer.jsx # tgui/packages/tgui/interfaces/PreferencesMenu/CharacterPreferences/MainPage.tsx # tgui/packages/tgui/interfaces/PreferencesMenu/types.ts # tgui/packages/tgui/interfaces/SurgeryInitiator.tsx # tools/icon_cutter/check.py
466 lines
19 KiB
Plaintext
466 lines
19 KiB
Plaintext
/obj/item/stack/sheet/animalhide
|
|
name = "hide"
|
|
desc = "Something went wrong."
|
|
icon_state = "sheet-hide"
|
|
inhand_icon_state = null
|
|
novariants = TRUE
|
|
merge_type = /obj/item/stack/sheet/animalhide
|
|
pickup_sound = 'sound/items/handling/materials/skin_pick_up.ogg'
|
|
drop_sound = 'sound/items/handling/materials/skin_drop.ogg'
|
|
abstract_type = /obj/item/stack/sheet/animalhide
|
|
|
|
/// Subtype of skin to be dropped by carbon mobs as a result of being butchered, potentially inheriting their body color
|
|
/obj/item/stack/sheet/animalhide/carbon
|
|
abstract_type = /obj/item/stack/sheet/animalhide/carbon
|
|
/// Color of our skin, if we were created from a mob being butchered
|
|
var/skin_color = null
|
|
/// Should we recolor our sprite and prevent merging of stacks of different skin colors?
|
|
var/uses_skin_color = FALSE
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/Initialize(mapload, new_amount, merge, list/mat_override, mat_amt, new_skin_color)
|
|
. = ..()
|
|
if (!skin_color)
|
|
set_skin_color(new_skin_color || get_random_skin_color())
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/can_merge(obj/item/stack/sheet/animalhide/carbon/check, inhand)
|
|
. = ..()
|
|
if (!. || !uses_skin_color)
|
|
return
|
|
return check.skin_color == skin_color // segregation, in my human butcher shop? how queer!
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/proc/set_skin_color(new_skin_color)
|
|
skin_color = new_skin_color
|
|
if (skin_color && uses_skin_color)
|
|
add_atom_colour(skin_color, FIXED_COLOUR_PRIORITY)
|
|
else
|
|
remove_atom_colour(FIXED_COLOUR_PRIORITY)
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/split_stack(amount)
|
|
var/obj/item/stack/sheet/animalhide/carbon/new_stack = ..()
|
|
if (!new_stack)
|
|
return
|
|
new_stack.set_skin_color(skin_color)
|
|
return new_stack
|
|
|
|
/// Select a random skin color to spawn
|
|
/obj/item/stack/sheet/animalhide/carbon/proc/get_random_skin_color()
|
|
return null
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/human
|
|
name = "human skin"
|
|
desc = "The by-product of human farming."
|
|
singular_name = "human skin piece"
|
|
novariants = FALSE
|
|
merge_type = /obj/item/stack/sheet/animalhide/carbon/human
|
|
|
|
GLOBAL_LIST_INIT(human_recipes, list( \
|
|
new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("human skin hat", /obj/item/clothing/head/fedora/human_leather, 1, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
))
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/human/get_main_recipes()
|
|
. = ..()
|
|
. += GLOB.human_recipes
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/human/five
|
|
amount = 5
|
|
|
|
/obj/item/stack/sheet/animalhide/generic
|
|
name = "skin"
|
|
desc = "A piece of skin."
|
|
singular_name = "skin piece"
|
|
novariants = FALSE
|
|
merge_type = /obj/item/stack/sheet/animalhide/generic
|
|
|
|
/obj/item/stack/sheet/animalhide/corgi
|
|
name = "corgi hide"
|
|
desc = "The by-product of corgi farming."
|
|
singular_name = "corgi hide piece"
|
|
icon_state = "sheet-corgi"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/animalhide/corgi
|
|
|
|
/obj/item/stack/sheet/animalhide/corgi/five
|
|
amount = 5
|
|
|
|
/obj/item/stack/sheet/animalhide/mothroach
|
|
name = "mothroach hide"
|
|
desc = "A thin layer of mothroach hide."
|
|
singular_name = "mothroach hide piece"
|
|
icon_state = "sheet-mothroach"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/animalhide/mothroach
|
|
|
|
/obj/item/stack/sheet/animalhide/mothroach/five
|
|
amount = 5
|
|
|
|
GLOBAL_LIST_INIT(gondola_recipes, list ( \
|
|
new/datum/stack_recipe("gondola mask", /obj/item/clothing/mask/gondola, 1, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("gondola suit", /obj/item/clothing/under/costume/gondola, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("gondola bedsheet", /obj/item/bedsheet/gondola, 1, crafting_flags = NONE, category = CAT_FURNITURE), \
|
|
))
|
|
|
|
/obj/item/stack/sheet/animalhide/gondola
|
|
name = "gondola hide"
|
|
desc = "The extremely valuable product of gondola hunting."
|
|
singular_name = "gondola hide piece"
|
|
icon_state = "sheet-gondola"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/animalhide/gondola
|
|
|
|
/obj/item/stack/sheet/animalhide/gondola/get_main_recipes()
|
|
. = ..()
|
|
. += GLOB.gondola_recipes
|
|
|
|
GLOBAL_LIST_INIT(corgi_recipes, list ( \
|
|
new/datum/stack_recipe("corgi costume", /obj/item/clothing/suit/hooded/ian_costume, 3, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
))
|
|
|
|
/obj/item/stack/sheet/animalhide/corgi/get_main_recipes()
|
|
. = ..()
|
|
. += GLOB.corgi_recipes
|
|
|
|
/obj/item/stack/sheet/animalhide/cat
|
|
name = "cat hide"
|
|
desc = "The by-product of cat farming."
|
|
singular_name = "cat hide piece"
|
|
icon_state = "sheet-cat"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/animalhide/cat
|
|
|
|
/obj/item/stack/sheet/animalhide/cat/five
|
|
amount = 5
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/monkey
|
|
name = "monkey hide"
|
|
desc = "The by-product of monkey farming."
|
|
singular_name = "monkey hide piece"
|
|
icon_state = "sheet-monkey"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/animalhide/carbon/monkey
|
|
|
|
GLOBAL_LIST_INIT(monkey_recipes, list ( \
|
|
new/datum/stack_recipe("monkey mask", /obj/item/clothing/mask/gas/monkeymask, 1, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("monkey suit", /obj/item/clothing/suit/costume/monkeysuit, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
))
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/monkey/get_main_recipes()
|
|
. = ..()
|
|
. += GLOB.monkey_recipes
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/monkey/five
|
|
amount = 5
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/lizard
|
|
name = "lizard skin"
|
|
desc = "Sssssss..."
|
|
singular_name = "lizard skin piece"
|
|
icon_state = "sheet-lizard"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/animalhide/carbon/lizard
|
|
uses_skin_color = TRUE
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/lizard/get_random_skin_color()
|
|
return sanitize_hexcolor("[pick("7F", "FF")][pick("7F", "FF")][pick("7F", "FF")]")
|
|
|
|
/obj/item/stack/sheet/animalhide/carbon/lizard/five
|
|
amount = 5
|
|
|
|
/obj/item/stack/sheet/animalhide/xeno
|
|
name = "alien hide"
|
|
desc = "The skin of a terrible creature."
|
|
singular_name = "alien hide piece"
|
|
icon_state = "sheet-xeno"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/animalhide/xeno
|
|
|
|
GLOBAL_LIST_INIT(xeno_recipes, list ( \
|
|
new/datum/stack_recipe("alien helmet", /obj/item/clothing/head/costume/xenos, 1, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("alien suit", /obj/item/clothing/suit/costume/xenos, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
))
|
|
|
|
/obj/item/stack/sheet/animalhide/xeno/get_main_recipes()
|
|
. = ..()
|
|
. += GLOB.xeno_recipes
|
|
|
|
/obj/item/stack/sheet/animalhide/xeno/five
|
|
amount = 5
|
|
|
|
/obj/item/stack/sheet/animalhide/carp
|
|
name = "carp scales"
|
|
desc = "The scaly skin of a space carp. It looks quite beautiful when detached from the foul creature who once wore it."
|
|
singular_name = "carp scale"
|
|
icon_state = "sheet-carp"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/animalhide/carp
|
|
|
|
GLOBAL_LIST_INIT(carp_recipes, list ( \
|
|
new/datum/stack_recipe("carp costume", /obj/item/clothing/suit/hooded/carp_costume, 4, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("carp mask", /obj/item/clothing/mask/gas/carp, 1, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("carpskin chair", /obj/structure/chair/comfy/carp, 2, crafting_flags = NONE, category = CAT_FURNITURE), \
|
|
new/datum/stack_recipe("carpskin suit", /obj/item/clothing/under/suit/carpskin, 3, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("carpskin fedora", /obj/item/clothing/head/fedora/carpskin, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("carpskin fishing bag", /obj/item/storage/bag/fishing/carpskin, 3, crafting_flags = NONE, category = CAT_CONTAINERS), \
|
|
))
|
|
|
|
/obj/item/stack/sheet/animalhide/carp/get_main_recipes()
|
|
. = ..()
|
|
. += GLOB.carp_recipes
|
|
|
|
/obj/item/stack/sheet/animalhide/carp/five
|
|
amount = 5
|
|
|
|
//don't see anywhere else to put these, maybe together they could be used to make the xenos suit?
|
|
/obj/item/stack/sheet/xenochitin
|
|
name = "alien chitin"
|
|
desc = "A piece of the hide of a terrible creature."
|
|
singular_name = "alien hide piece"
|
|
icon = 'icons/mob/nonhuman-player/alien.dmi'
|
|
icon_state = "chitin"
|
|
novariants = TRUE
|
|
merge_type = /obj/item/stack/sheet/xenochitin
|
|
|
|
/obj/item/xenos_claw
|
|
name = "alien claw"
|
|
desc = "The claw of a terrible creature."
|
|
icon = 'icons/mob/nonhuman-player/alien.dmi'
|
|
icon_state = "claw"
|
|
|
|
/*
|
|
* Leather SHeet
|
|
*/
|
|
/obj/item/stack/sheet/leather
|
|
name = "leather"
|
|
desc = "The by-product of mob grinding."
|
|
singular_name = "leather piece"
|
|
icon_state = "sheet-leather"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/leather
|
|
pickup_sound = 'sound/items/handling/materials/skin_pick_up.ogg'
|
|
drop_sound = 'sound/items/handling/materials/skin_drop.ogg'
|
|
|
|
GLOBAL_LIST_INIT(leather_recipes, list ( \
|
|
new/datum/stack_recipe("wallet", /obj/item/storage/wallet, 1, crafting_flags = NONE, category = CAT_CONTAINERS), \
|
|
new/datum/stack_recipe("muzzle", /obj/item/clothing/mask/muzzle, 2, crafting_flags = NONE, category = CAT_ENTERTAINMENT), \
|
|
new/datum/stack_recipe("basketball", /obj/item/toy/basketball, 20, crafting_flags = NONE, category = CAT_ENTERTAINMENT), \
|
|
new/datum/stack_recipe("baseball", /obj/item/toy/beach_ball/baseball, 3, crafting_flags = NONE, category = CAT_ENTERTAINMENT), \
|
|
new/datum/stack_recipe("saddle", /obj/item/goliath_saddle, 5, crafting_flags = NONE, category = CAT_EQUIPMENT), \
|
|
new/datum/stack_recipe("leather shoes", /obj/item/clothing/shoes/laceup, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("cowboy boots", /obj/item/clothing/shoes/cowboy, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("botany gloves", /obj/item/clothing/gloves/botanic_leather, 3, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("leather satchel", /obj/item/storage/backpack/satchel/leather, 5, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("sheriff vest", /obj/item/clothing/accessory/vest_sheriff, 4, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("leather jacket", /obj/item/clothing/suit/jacket/leather, 7, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("biker jacket", /obj/item/clothing/suit/jacket/leather/biker, 7, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("leather loincloth", /obj/item/clothing/under/costume/loincloth, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe_list("belts", list( \
|
|
new/datum/stack_recipe("tool belt", /obj/item/storage/belt/utility, 4, crafting_flags = NONE, category = CAT_CONTAINERS), \
|
|
new/datum/stack_recipe("botanical belt", /obj/item/storage/belt/plant, 2, crafting_flags = NONE, category = CAT_CONTAINERS), \
|
|
new/datum/stack_recipe("janitorial belt", /obj/item/storage/belt/janitor, 2, crafting_flags = NONE, category = CAT_CONTAINERS), \
|
|
new/datum/stack_recipe("medical belt", /obj/item/storage/belt/medical, 2, crafting_flags = NONE, category = CAT_CONTAINERS), \
|
|
new/datum/stack_recipe("security belt", /obj/item/storage/belt/security, 2, crafting_flags = NONE, category = CAT_CONTAINERS), \
|
|
new/datum/stack_recipe("shoulder holster", /obj/item/storage/belt/holster, 3, crafting_flags = NONE, category = CAT_CONTAINERS), \
|
|
new/datum/stack_recipe("bandolier", /obj/item/storage/belt/bandolier, 5, crafting_flags = NONE, category = CAT_CONTAINERS), \
|
|
)),
|
|
new/datum/stack_recipe_list("cowboy hats", list( \
|
|
new/datum/stack_recipe("sheriff hat", /obj/item/clothing/head/cowboy/brown, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("desperado hat", /obj/item/clothing/head/cowboy/black, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("ten-gallon hat", /obj/item/clothing/head/cowboy/white, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("deputy hat", /obj/item/clothing/head/cowboy/red, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("drifter hat", /obj/item/clothing/head/cowboy/grey, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
)),
|
|
new/datum/stack_recipe_list("sword sheaths", list( \
|
|
new/datum/stack_recipe("katana sheath", /obj/item/storage/belt/sheath/katana/empty, 3, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("hanzo katana sheath", /obj/item/storage/belt/sheath/hanzo_katana/empty, 3, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("toy katana sheath", /obj/item/storage/belt/sheath/katana/toy/empty, 3, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
)),
|
|
))
|
|
|
|
/obj/item/stack/sheet/leather/get_main_recipes()
|
|
. = ..()
|
|
. += GLOB.leather_recipes
|
|
|
|
/obj/item/stack/sheet/leather/five
|
|
amount = 5
|
|
|
|
/*
|
|
* Sinew
|
|
*/
|
|
/obj/item/stack/sheet/sinew
|
|
name = "watcher sinew"
|
|
icon = 'icons/obj/mining.dmi'
|
|
desc = "Long stringy filaments which presumably came from a watcher's wings."
|
|
singular_name = "watcher sinew"
|
|
icon_state = "sinew"
|
|
novariants = TRUE
|
|
merge_type = /obj/item/stack/sheet/sinew
|
|
drop_sound = 'sound/effects/meatslap.ogg'
|
|
pickup_sound = 'sound/effects/meatslap.ogg'
|
|
resistance_flags = FIRE_PROOF | LAVA_PROOF
|
|
|
|
/obj/item/stack/sheet/sinew/Initialize(mapload, new_amount, merge, list/mat_override, mat_amt)
|
|
. = ..()
|
|
|
|
// As bone and sinew have just a little too many recipes for this, we'll just split them up.
|
|
// Sinew slapcrafting will mostly-sinew recipes, and bones will have mostly-bones recipes.
|
|
var/static/list/slapcraft_recipe_list = list(\
|
|
/datum/crafting_recipe/goliathcloak, /datum/crafting_recipe/skilt, /datum/crafting_recipe/drakecloak,\
|
|
)
|
|
|
|
AddElement(
|
|
/datum/element/slapcrafting,\
|
|
slapcraft_recipes = slapcraft_recipe_list,\
|
|
)
|
|
|
|
/obj/item/stack/sheet/sinew/wolf
|
|
name = "wolf sinew"
|
|
desc = "Long stringy filaments which came from the insides of a wolf."
|
|
singular_name = "wolf sinew"
|
|
merge_type = /obj/item/stack/sheet/sinew/wolf
|
|
|
|
GLOBAL_LIST_INIT(sinew_recipes, list ( \
|
|
new/datum/stack_recipe("sinew restraints", /obj/item/restraints/handcuffs/cable/sinew, 1, crafting_flags = NONE, category = CAT_EQUIPMENT), \
|
|
))
|
|
|
|
/obj/item/stack/sheet/sinew/get_main_recipes()
|
|
. = ..()
|
|
. += GLOB.sinew_recipes
|
|
|
|
|
|
/*Plates*/
|
|
/obj/item/stack/sheet/animalhide/goliath_hide
|
|
name = "goliath hide plates"
|
|
desc = "Pieces of a goliath's rocky hide, these might be able to make your suit a bit more durable to attack from the local fauna."
|
|
icon = 'icons/obj/stack_objects.dmi'
|
|
icon_state = "goliath_hide"
|
|
singular_name = "hide plate"
|
|
max_amount = 6
|
|
novariants = FALSE
|
|
item_flags = NOBLUDGEON
|
|
resistance_flags = FIRE_PROOF | LAVA_PROOF
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
layer = MOB_LAYER
|
|
merge_type = /obj/item/stack/sheet/animalhide/goliath_hide
|
|
|
|
/obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide
|
|
name = "polar bear hides"
|
|
desc = "Pieces of a polar bear's fur, these might be able to make your suit a bit more durable to attack from the local fauna."
|
|
icon_state = "polar_bear_hide"
|
|
singular_name = "polar bear hide"
|
|
merge_type = /obj/item/stack/sheet/animalhide/goliath_hide/polar_bear_hide
|
|
|
|
/obj/item/stack/sheet/animalhide/ashdrake
|
|
name = "ash drake hide"
|
|
desc = "The strong, scaled hide of an ash drake."
|
|
icon = 'icons/obj/stack_objects.dmi'
|
|
icon_state = "dragon_hide"
|
|
singular_name = "drake plate"
|
|
max_amount = 10
|
|
novariants = FALSE
|
|
item_flags = NOBLUDGEON
|
|
w_class = WEIGHT_CLASS_NORMAL
|
|
layer = MOB_LAYER
|
|
merge_type = /obj/item/stack/sheet/animalhide/ashdrake
|
|
|
|
/obj/item/stack/sheet/animalhide/ashdrake/Initialize(mapload, new_amount, merge, list/mat_override, mat_amt)
|
|
. = ..()
|
|
|
|
var/static/list/slapcraft_recipe_list = list(/datum/crafting_recipe/drakecloak)
|
|
|
|
AddElement(
|
|
/datum/element/slapcrafting,\
|
|
slapcraft_recipes = slapcraft_recipe_list,\
|
|
)
|
|
|
|
/obj/item/stack/sheet/animalhide/bear
|
|
name = "bear hide"
|
|
desc = "Fuzzy pelts from a bear. Imagine how warm you could be, wrapped up in a coat of this stuff."
|
|
icon_state = "bear_hide" //change
|
|
singular_name = "bear pelt"
|
|
merge_type = /obj/item/stack/sheet/animalhide/bear
|
|
novariants = FALSE
|
|
|
|
GLOBAL_LIST_INIT(bear_pelt_recipes, list ( \
|
|
new/datum/stack_recipe("bear costume", /obj/item/clothing/suit/costume/bear_suit, 5, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
new/datum/stack_recipe("bear hat", /obj/item/clothing/head/costume/bearpelt, 2, crafting_flags = NONE, category = CAT_CLOTHING), \
|
|
))
|
|
|
|
/obj/item/stack/sheet/animalhide/bear/get_main_recipes()
|
|
. = ..()
|
|
. += GLOB.bear_pelt_recipes
|
|
|
|
//Step one - dehairing.
|
|
|
|
/obj/item/stack/sheet/animalhide/attackby(obj/item/W, mob/user, list/modifiers, list/attack_modifiers)
|
|
if(W.get_sharpness())
|
|
playsound(loc, 'sound/items/weapons/slice.ogg', 50, TRUE, -1)
|
|
user.visible_message(span_notice("[user] starts cutting hair off \the [src]."), span_notice("You start cutting the hair off \the [src]..."), span_hear("You hear the sound of a knife rubbing against flesh."))
|
|
if(do_after(user, 5 SECONDS, target = src))
|
|
to_chat(user, span_notice("You cut the hair from [src.name]."))
|
|
new /obj/item/stack/sheet/hairlesshide(user.drop_location(), amount)
|
|
use(amount)
|
|
else
|
|
return ..()
|
|
|
|
/obj/item/stack/sheet/animalhide/examine(mob/user)
|
|
. = ..()
|
|
. += span_notice("You can remove the hair with any sharp object.")
|
|
|
|
//Step two - washing..... it's actually in washing machine code.
|
|
|
|
/obj/item/stack/sheet/hairlesshide
|
|
name = "hairless hide"
|
|
desc = "This hide was stripped of its hair, but still needs washing and tanning."
|
|
singular_name = "hairless hide piece"
|
|
icon_state = "sheet-hairlesshide"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/hairlesshide
|
|
pickup_sound = 'sound/items/handling/materials/skin_pick_up.ogg'
|
|
drop_sound = 'sound/items/handling/materials/skin_drop.ogg'
|
|
|
|
/obj/item/stack/sheet/hairlesshide/examine(mob/user)
|
|
. = ..()
|
|
. += span_notice("You can clean it up by washing in the water.")
|
|
|
|
//Step three - drying
|
|
/obj/item/stack/sheet/wethide
|
|
name = "wet hide"
|
|
desc = "This hide has been cleaned but still needs to be dried."
|
|
singular_name = "wet hide piece"
|
|
icon_state = "sheet-wetleather"
|
|
inhand_icon_state = null
|
|
merge_type = /obj/item/stack/sheet/wethide
|
|
pickup_sound = 'sound/items/handling/materials/skin_pick_up.ogg'
|
|
drop_sound = 'sound/items/handling/materials/skin_drop.ogg'
|
|
/// Reduced when exposed to high temperatures
|
|
var/wetness = 30
|
|
/// Kelvin to start drying
|
|
var/drying_threshold_temperature = 500
|
|
|
|
/obj/item/stack/sheet/wethide/examine(mob/user)
|
|
. = ..()
|
|
. += span_notice("You can dry it up to make leather.")
|
|
|
|
/obj/item/stack/sheet/wethide/Initialize(mapload, new_amount, merge = TRUE, list/mat_override=null, mat_amt=1)
|
|
. = ..()
|
|
AddElement(/datum/element/atmos_sensitive, mapload)
|
|
AddElement(/datum/element/dryable, /obj/item/stack/sheet/leather)
|
|
AddElement(/datum/element/microwavable, /obj/item/stack/sheet/leather)
|
|
AddComponent(/datum/component/grillable, /obj/item/stack/sheet/leather, rand(1 SECONDS, 3 SECONDS), TRUE)
|
|
AddComponent(/datum/component/bakeable, /obj/item/stack/sheet/leather, rand(15 SECONDS, 20 SECONDS), TRUE, TRUE)
|
|
|
|
/obj/item/stack/sheet/wethide/burn()
|
|
visible_message(span_notice("[src] dries up!"))
|
|
new /obj/item/stack/sheet/leather(loc, amount) // all the sheets to incentivize not losing your whole stack by accident
|
|
qdel(src)
|
|
|
|
/obj/item/stack/sheet/wethide/should_atmos_process(datum/gas_mixture/air, exposed_temperature)
|
|
return (exposed_temperature > drying_threshold_temperature)
|
|
|
|
/obj/item/stack/sheet/wethide/atmos_expose(datum/gas_mixture/air, exposed_temperature)
|
|
wetness--
|
|
if(wetness == 0)
|
|
new /obj/item/stack/sheet/leather(drop_location(), amount)
|
|
wetness = initial(wetness)
|
|
use(1)
|