diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_blobinfection.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_blobinfection.png index 9a94c3d4314f3..e3d7acbf5d891 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_antag_icons_blobinfection.png and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_blobinfection.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodbrother.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodbrother.png index 9107385791fb7..a1a3e0756d17b 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodbrother.png and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_bloodbrother.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_changeling.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_changeling.png index 1fc5ed1581fe7..c63a02c837052 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_antag_icons_changeling.png and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_changeling.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_antag_icons_stowawaychangeling.png b/code/modules/unit_tests/screenshots/screenshot_antag_icons_stowawaychangeling.png index 1fc5ed1581fe7..c63a02c837052 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_antag_icons_stowawaychangeling.png and b/code/modules/unit_tests/screenshots/screenshot_antag_icons_stowawaychangeling.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly.png index ab2ee4cacb82a..eaee84fed4942 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_luminescent.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_luminescent.png index 8fd0e16dbf400..641c9050ee467 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_luminescent.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_luminescent.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_slime.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_slime.png index 1ecea86f347e3..34288a8a8e5da 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_slime.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_slime.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_stargazer.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_stargazer.png index ab2ee4cacb82a..eaee84fed4942 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_stargazer.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_jelly_stargazer.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_lizard.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_lizard.png index fe03a48eae315..d5ac3a8f3500b 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_lizard.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_lizard.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_moth.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_moth.png index a3e10254ea88f..e39d53764434d 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_moth.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_moth.png differ diff --git a/modular_doppler/loadout_categories/categories/heads.dm b/modular_doppler/loadout_categories/categories/heads.dm index c76eecc7b37a7..4d900d5cd620c 100644 --- a/modular_doppler/loadout_categories/categories/heads.dm +++ b/modular_doppler/loadout_categories/categories/heads.dm @@ -81,3 +81,19 @@ /datum/loadout_item/head/hair_tie_plastic name = "Hairtie (Plastic)" item_path = /obj/item/clothing/head/hair_tie/plastic_beads + +/datum/loadout_item/head/bow_large + name = "Bow (Large)" + item_path = /obj/item/clothing/head/bow + +/datum/loadout_item/head/bow_small + name = "Bow (Small)" + item_path = /obj/item/clothing/head/bow/small + +/datum/loadout_item/head/bow_back + name = "Bow (Back)" + item_path = /obj/item/clothing/head/bow/back + +/datum/loadout_item/head/bow_sweet + name = "Bow (Sweet)" + item_path = /obj/item/clothing/head/bow/sweet diff --git a/modular_doppler/loadout_categories/categories/undersuit.dm b/modular_doppler/loadout_categories/categories/undersuit.dm index 07e2c07ee8435..c5c3e717d2eb7 100644 --- a/modular_doppler/loadout_categories/categories/undersuit.dm +++ b/modular_doppler/loadout_categories/categories/undersuit.dm @@ -147,3 +147,19 @@ /datum/loadout_item/undersuit/dress/sailor name = "Heretical Dress" item_path = /obj/item/clothing/under/dress/sailor + +/datum/loadout_item/undersuit/dress/tutu + name = "Pink Tutu" + item_path = /obj/item/clothing/under/dress/doppler/pinktutu + +/datum/loadout_item/undersuit/dress/flower + name = "Flower Dress" + item_path = /obj/item/clothing/under/dress/doppler/flower + +/datum/loadout_item/undersuit/dress/penta + name = "Pentagram Dress" + item_path = /obj/item/clothing/under/dress/doppler/pentagram + +/datum/loadout_item/undersuit/dress/strapless + name = "Strapless Dress" + item_path = /obj/item/clothing/under/dress/doppler/strapless diff --git a/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_head.dm b/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_head.dm index 1152207b6afb6..8b08733a190bb 100644 --- a/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_head.dm +++ b/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_head.dm @@ -20,3 +20,41 @@ name = "Hood (Worn)" icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/mob/head.dmi' json_config = 'modular_doppler/modular_cosmetics/GAGS/json_configs/head/hood_worn.json' + + +//BOWS +/datum/greyscale_config/large_bow + name = "Large Bow" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/head.dmi' + json_config = 'modular_doppler/modular_cosmetics/GAGS/json_configs/head/large_bow.json' + +/datum/greyscale_config/large_bow/worn + name = "Large Bow (Worn)" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/mob/head.dmi' + +/datum/greyscale_config/back_bow + name = "Back Bow" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/head.dmi' + json_config = 'modular_doppler/modular_cosmetics/GAGS/json_configs/head/back_bow.json' + +/datum/greyscale_config/back_bow/worn + name = "Back Bow (Worn)" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/mob/head.dmi' + +/datum/greyscale_config/sweet_bow + name = "Sweet Bow" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/head.dmi' + json_config = 'modular_doppler/modular_cosmetics/GAGS/json_configs/head/sweet_bow.json' + +/datum/greyscale_config/sweet_bow/worn + name = "Sweet Bow (Worn)" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/mob/head.dmi' + +/datum/greyscale_config/small_bow + name = "Small Bow" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/head.dmi' + json_config = 'modular_doppler/modular_cosmetics/GAGS/json_configs/head/small_bow.json' + +/datum/greyscale_config/small_bow/worn + name = "Small Bow (Worn)" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/mob/head.dmi' diff --git a/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_under.dm b/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_under.dm index 3934ebd58a841..1e7b383302aa0 100644 --- a/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_under.dm +++ b/modular_doppler/modular_cosmetics/GAGS/greyscale_configs_under.dm @@ -108,3 +108,25 @@ name = "'JUNCO' megacargo pants (Worn)" icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/mob/under.dmi' json_config = 'modular_doppler/modular_cosmetics/GAGS/json_configs/under/big_pants_worn.json' + +/////////// +//DRESSES// +/////////// + +/datum/greyscale_config/strapless_dress + name = "Strapless Dress" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/under.dmi' + json_config = 'modular_doppler/modular_cosmetics/GAGS/json_configs/under/strapless_dress.json' + +/datum/greyscale_config/strapless_dress/worn + name = "Strapless Dress (Worn)" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/mob/under.dmi' + +/datum/greyscale_config/pentagram_dress + name = "Pentagram Strapped Dress" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/under.dmi' + json_config = 'modular_doppler/modular_cosmetics/GAGS/json_configs/under/pentagram_dress.json' + +/datum/greyscale_config/pentagram_dress/worn + name = "Pentagram Strapped Dress (Worn)" + icon_file = 'modular_doppler/modular_cosmetics/GAGS/icons/mob/under.dmi' diff --git a/modular_doppler/modular_cosmetics/GAGS/icons/mob/under.dmi b/modular_doppler/modular_cosmetics/GAGS/icons/mob/under.dmi index 3912e615de3d4..51577e8a93636 100644 Binary files a/modular_doppler/modular_cosmetics/GAGS/icons/mob/under.dmi and b/modular_doppler/modular_cosmetics/GAGS/icons/mob/under.dmi differ diff --git a/modular_doppler/modular_cosmetics/GAGS/icons/obj/under.dmi b/modular_doppler/modular_cosmetics/GAGS/icons/obj/under.dmi index d5c28418ee0b0..fdacc511c1010 100644 Binary files a/modular_doppler/modular_cosmetics/GAGS/icons/obj/under.dmi and b/modular_doppler/modular_cosmetics/GAGS/icons/obj/under.dmi differ diff --git a/modular_doppler/modular_cosmetics/GAGS/json_configs/head/back_bow.json b/modular_doppler/modular_cosmetics/GAGS/json_configs/head/back_bow.json new file mode 100644 index 0000000000000..b2e5f1f82cb06 --- /dev/null +++ b/modular_doppler/modular_cosmetics/GAGS/json_configs/head/back_bow.json @@ -0,0 +1,10 @@ +{ + "back_bow": [ + { + "type": "icon_state", + "icon_state": "back_bow", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_doppler/modular_cosmetics/GAGS/json_configs/head/large_bow.json b/modular_doppler/modular_cosmetics/GAGS/json_configs/head/large_bow.json new file mode 100644 index 0000000000000..aa5292b71a95e --- /dev/null +++ b/modular_doppler/modular_cosmetics/GAGS/json_configs/head/large_bow.json @@ -0,0 +1,10 @@ +{ + "large_bow": [ + { + "type": "icon_state", + "icon_state": "large_bow", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_doppler/modular_cosmetics/GAGS/json_configs/head/small_bow.json b/modular_doppler/modular_cosmetics/GAGS/json_configs/head/small_bow.json new file mode 100644 index 0000000000000..8aa0d37a192bd --- /dev/null +++ b/modular_doppler/modular_cosmetics/GAGS/json_configs/head/small_bow.json @@ -0,0 +1,18 @@ +{ + "small_bow": [ + { + "type": "icon_state", + "icon_state": "small_bow", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ], + "small_bow_t": [ + { + "type": "icon_state", + "icon_state": "small_bow_t", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_doppler/modular_cosmetics/GAGS/json_configs/head/sweet_bow.json b/modular_doppler/modular_cosmetics/GAGS/json_configs/head/sweet_bow.json new file mode 100644 index 0000000000000..5cb25c29e8dff --- /dev/null +++ b/modular_doppler/modular_cosmetics/GAGS/json_configs/head/sweet_bow.json @@ -0,0 +1,10 @@ +{ + "sweet_bow": [ + { + "type": "icon_state", + "icon_state": "sweet_bow", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_doppler/modular_cosmetics/GAGS/json_configs/under/pentagram_dress.json b/modular_doppler/modular_cosmetics/GAGS/json_configs/under/pentagram_dress.json new file mode 100644 index 0000000000000..f14d360f82260 --- /dev/null +++ b/modular_doppler/modular_cosmetics/GAGS/json_configs/under/pentagram_dress.json @@ -0,0 +1,10 @@ +{ + "dress_pentagram": [ + { + "type": "icon_state", + "icon_state": "penta_base", + "blend_mode": "overlay", + "color_ids": [ 1 ] + } + ] +} diff --git a/modular_doppler/modular_cosmetics/GAGS/json_configs/under/strapless_dress.json b/modular_doppler/modular_cosmetics/GAGS/json_configs/under/strapless_dress.json new file mode 100644 index 0000000000000..a8f8c3257305c --- /dev/null +++ b/modular_doppler/modular_cosmetics/GAGS/json_configs/under/strapless_dress.json @@ -0,0 +1,16 @@ +{ + "dress_strapless": [ + { + "type": "icon_state", + "icon_state": "strapless_belt", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "strapless_base", + "blend_mode": "overlay", + "color_ids": [ 2 ] + } + ] +} diff --git a/modular_doppler/modular_cosmetics/code/belt/med_bandolier.dm b/modular_doppler/modular_cosmetics/code/belt/med_bandolier.dm new file mode 100644 index 0000000000000..faa1ff469cd62 --- /dev/null +++ b/modular_doppler/modular_cosmetics/code/belt/med_bandolier.dm @@ -0,0 +1,25 @@ +/obj/item/storage/belt/med_bandolier + icon = 'modular_doppler/modular_cosmetics/icons/obj/belt/medical_extra.dmi' + worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/belt/medical_extra.dmi' + name = "medical bandolier" + desc = "A pocketed, pine green belt slung like a sash over the shoulder. Features numerous pockets for medicines and poisons alike. Now is coward healing time." + icon_state = "med_bandolier" + worn_icon_state = "med_bandolier" + +/obj/item/storage/belt/med_bandolier/Initialize(mapload) + . = ..() + atom_storage.max_specific_storage = WEIGHT_CLASS_NORMAL + atom_storage.max_slots = 14 + atom_storage.max_total_storage = 35 + atom_storage.set_holdable(list( + /obj/item/dnainjector, + /obj/item/reagent_containers/dropper, + /obj/item/reagent_containers/cup/bottle, + /obj/item/reagent_containers/pill, + /obj/item/reagent_containers/syringe, + /obj/item/reagent_containers/medigel, + /obj/item/storage/pill_bottle, + /obj/item/implanter, + /obj/item/hypospray/mkii, + /obj/item/reagent_containers/cup/hypovial, + )) diff --git a/modular_doppler/modular_cosmetics/code/garment_bag_overrides.dm b/modular_doppler/modular_cosmetics/code/garment_bag_overrides.dm new file mode 100644 index 0000000000000..727cfdd4b964b --- /dev/null +++ b/modular_doppler/modular_cosmetics/code/garment_bag_overrides.dm @@ -0,0 +1,52 @@ +/obj/item/storage/bag/garment/captain/PopulateContents() + . = ..() + new /obj/item/clothing/under/misc/doppler_uniform/command(src) + new /obj/item/clothing/neck/doppler_mantle/command(src) + new /obj/item/clothing/head/beret/doppler_command/command(src) + new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/command(src) + +/obj/item/storage/bag/garment/hop/PopulateContents() + . = ..() + new /obj/item/clothing/under/misc/doppler_uniform/service(src) + new /obj/item/clothing/neck/doppler_mantle/service(src) + new /obj/item/clothing/head/beret/doppler_command/service(src) + new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/service(src) + +/obj/item/storage/bag/garment/hos/PopulateContents() + . = ..() + new /obj/item/clothing/under/misc/doppler_uniform/security(src) + new /obj/item/clothing/neck/doppler_mantle/security(src) + new /obj/item/clothing/head/beret/doppler_command/security(src) + new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/security(src) + +/obj/item/storage/bag/garment/warden/PopulateContents() + . = ..() + new /obj/item/clothing/under/misc/doppler_uniform/security(src) + +/obj/item/storage/bag/garment/research_director/PopulateContents() + . = ..() + new /obj/item/clothing/under/misc/doppler_uniform/science(src) + new /obj/item/clothing/neck/doppler_mantle/science(src) + new /obj/item/clothing/head/beret/doppler_command/science(src) + new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/science(src) + +/obj/item/storage/bag/garment/chief_medical/PopulateContents() + . = ..() + new /obj/item/clothing/under/misc/doppler_uniform/medical(src) + new /obj/item/clothing/neck/doppler_mantle/medical(src) + new /obj/item/clothing/head/beret/doppler_command/medical(src) + new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/medical(src) + +/obj/item/storage/bag/garment/engineering_chief/PopulateContents() + . = ..() + new /obj/item/clothing/under/misc/doppler_uniform/engineering(src) + new /obj/item/clothing/neck/doppler_mantle/engineering(src) + new /obj/item/clothing/head/beret/doppler_command/engineering(src) + new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/engineering(src) + +/obj/item/storage/bag/garment/quartermaster/PopulateContents() + . = ..() + new /obj/item/clothing/under/misc/doppler_uniform/cargo(src) + new /obj/item/clothing/neck/doppler_mantle/cargo(src) + new /obj/item/clothing/head/beret/doppler_command/cargo(src) + new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/cargo(src) diff --git a/modular_doppler/modular_cosmetics/code/head/bows.dm b/modular_doppler/modular_cosmetics/code/head/bows.dm new file mode 100644 index 0000000000000..5a11ad2d62579 --- /dev/null +++ b/modular_doppler/modular_cosmetics/code/head/bows.dm @@ -0,0 +1,38 @@ +/obj/item/clothing/head/bow + name = "large bow" + desc = "A large bow that you can place on top of your head." + icon_state = "large_bow" + icon_preview = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/head.dmi' + icon_state_preview = "large_bow" + greyscale_config = /datum/greyscale_config/large_bow + greyscale_config_worn = /datum/greyscale_config/large_bow/worn + greyscale_colors = "#7b9ab5" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/head/bow/small + name = "small bow" + desc = "A small compact bow that you can place on the side of your hair." + icon_state = "small_bow" + icon_state_preview = "small_bow" + greyscale_config = /datum/greyscale_config/small_bow + greyscale_config_worn = /datum/greyscale_config/small_bow/worn + +/obj/item/clothing/head/bow/small/Initialize(mapload) + . = ..() + AddComponent(/datum/component/toggle_clothes, "small_bow_t") + +/obj/item/clothing/head/bow/back + name = "back bow" + desc = "A large bow that you can place on the back of your head." + icon_state = "back_bow" + icon_state_preview = "back_bow" + greyscale_config = /datum/greyscale_config/back_bow + greyscale_config_worn = /datum/greyscale_config/back_bow/worn + +/obj/item/clothing/head/bow/sweet + name = "sweet bow" + desc = "A sweet bow that you can place on the back of your head." + icon_state = "sweet_bow" + icon_state_preview = "sweet_bow" + greyscale_config = /datum/greyscale_config/sweet_bow + greyscale_config_worn = /datum/greyscale_config/sweet_bow/worn diff --git a/modular_doppler/modular_cosmetics/code/under/dresses.dm b/modular_doppler/modular_cosmetics/code/under/dresses.dm new file mode 100644 index 0000000000000..4f8ec6bea7cbd --- /dev/null +++ b/modular_doppler/modular_cosmetics/code/under/dresses.dm @@ -0,0 +1,38 @@ +/obj/item/clothing/under/dress/doppler + icon = 'modular_doppler/modular_cosmetics/icons/obj/under/dresses.dmi' + worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/under/dresses.dmi' + +/obj/item/clothing/under/dress/doppler/pentagram + name = "pentagram strapped dress" + desc = "A soft dress with straps designed to rest as a pentragram. Isn't this against NT's whole \"Authorized Religion\" stuff?" + icon_state = "dress_pentagram" + icon_preview = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/under.dmi' + icon_state_preview = "penta_base" + body_parts_covered = CHEST|GROIN|LEGS + greyscale_config = /datum/greyscale_config/pentagram_dress + greyscale_config_worn = /datum/greyscale_config/pentagram_dress/worn + greyscale_colors = "#403c46" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/dress/doppler/strapless + name = "strapless dress" + desc = "Typical formal wear with no straps, instead opting to be tied at the waist. Most likely will need constant adjustments." + icon_state = "dress_strapless" + icon_preview = 'modular_doppler/modular_cosmetics/GAGS/icons/obj/under.dmi' + icon_state_preview = "strapless_base" + body_parts_covered = CHEST|GROIN|LEGS + greyscale_config = /datum/greyscale_config/strapless_dress + greyscale_config_worn = /datum/greyscale_config/strapless_dress/worn + greyscale_colors = "#cc0000#5f5f5f" + flags_1 = IS_PLAYER_COLORABLE_1 + +/obj/item/clothing/under/dress/doppler/flower + name = "flower dress" + desc = "Lovely dress. Colored like the autumn leaves." + icon_state = "flower_dress" + body_parts_covered = CHEST|GROIN|LEGS + +/obj/item/clothing/under/dress/doppler/pinktutu + name = "pink tutu" + desc = "A fluffy pink tutu." + icon_state = "pinktutu" diff --git a/modular_doppler/modular_cosmetics/code/under/medical_extra.dm b/modular_doppler/modular_cosmetics/code/under/medical_extra.dm new file mode 100644 index 0000000000000..4bddb234f918e --- /dev/null +++ b/modular_doppler/modular_cosmetics/code/under/medical_extra.dm @@ -0,0 +1,18 @@ +/* +* CHEMIST +*/ + +/obj/item/clothing/under/rank/medical/chemist/pharmacologist + name = "pharmacologist jumpsuit" + desc = "A white shirt with left-aligned buttons and an orange stripe, lined with protection against chemical spills." + icon = 'modular_doppler/modular_cosmetics/icons/obj/under/medical_extra.dmi' + worn_icon = 'modular_doppler/modular_cosmetics/icons/mob/under/medical_extra.dmi' + icon_state = "pharmacologist" + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON + +/obj/item/clothing/under/rank/medical/chemist/pharmacologist/skirt + name = "pharmacologist jumpskirt" + icon_state = "pharmacologist_skirt" + body_parts_covered = CHEST|GROIN|ARMS + dying_key = DYE_REGISTRY_JUMPSKIRT + female_sprite_flags = FEMALE_UNIFORM_TOP_ONLY diff --git a/modular_doppler/modular_cosmetics/code/uniform_overrides.dm b/modular_doppler/modular_cosmetics/code/uniform_overrides.dm index 649621053545c..9275f59afdf51 100644 --- a/modular_doppler/modular_cosmetics/code/uniform_overrides.dm +++ b/modular_doppler/modular_cosmetics/code/uniform_overrides.dm @@ -1,199 +1,3 @@ -/obj/item/storage/bag/garment/captain/PopulateContents() - . = ..() - new /obj/item/clothing/under/misc/doppler_uniform/command(src) - new /obj/item/clothing/neck/doppler_mantle/command(src) - new /obj/item/clothing/head/beret/doppler_command/command(src) - new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/command(src) - -/obj/item/storage/bag/garment/hop/PopulateContents() - . = ..() - new /obj/item/clothing/under/misc/doppler_uniform/service(src) - new /obj/item/clothing/neck/doppler_mantle/service(src) - new /obj/item/clothing/head/beret/doppler_command/service(src) - new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/service(src) - -/obj/item/storage/bag/garment/hos/PopulateContents() - . = ..() - new /obj/item/clothing/under/misc/doppler_uniform/security(src) - new /obj/item/clothing/neck/doppler_mantle/security(src) - new /obj/item/clothing/head/beret/doppler_command/security(src) - new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/security(src) - -/obj/item/storage/bag/garment/warden/PopulateContents() - . = ..() - new /obj/item/clothing/under/misc/doppler_uniform/security(src) - new /obj/item/clothing/neck/doppler_mantle/performer(src) - new /obj/item/clothing/head/beret/doppler_command/performer(src) - new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/performer(src) - -/obj/item/storage/bag/garment/research_director/PopulateContents() - . = ..() - new /obj/item/clothing/under/misc/doppler_uniform/science(src) - new /obj/item/clothing/neck/doppler_mantle/science(src) - new /obj/item/clothing/head/beret/doppler_command/science(src) - new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/science(src) - -/obj/item/storage/bag/garment/chief_medical/PopulateContents() - . = ..() - new /obj/item/clothing/under/misc/doppler_uniform/medical(src) - new /obj/item/clothing/neck/doppler_mantle/medical(src) - new /obj/item/clothing/head/beret/doppler_command/medical(src) - new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/medical(src) - -/obj/item/storage/bag/garment/engineering_chief/PopulateContents() - . = ..() - new /obj/item/clothing/under/misc/doppler_uniform/engineering(src) - new /obj/item/clothing/neck/doppler_mantle/engineering(src) - new /obj/item/clothing/head/beret/doppler_command/engineering(src) - new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/engineering(src) - -/obj/item/storage/bag/garment/quartermaster/PopulateContents() - . = ..() - new /obj/item/clothing/under/misc/doppler_uniform/cargo(src) - new /obj/item/clothing/neck/doppler_mantle/cargo(src) - new /obj/item/clothing/head/beret/doppler_command/cargo(src) - new /obj/item/clothing/head/utility/hardhat/welding/doppler_command/cargo(src) - - - -/// Job loadout overrides -// HEADS -/datum/outfit/job/cmo - uniform = /obj/item/clothing/under/misc/doppler_uniform/medical - head = /obj/item/clothing/head/beret/doppler_command/medical - neck = /obj/item/clothing/neck/doppler_mantle/medical - -/datum/outfit/job/rd - uniform = /obj/item/clothing/under/misc/doppler_uniform/science - head = /obj/item/clothing/head/utility/hardhat/welding/doppler_command/science - neck = /obj/item/clothing/neck/doppler_mantle/science - -/datum/outfit/job/ce - uniform = /obj/item/clothing/under/misc/doppler_uniform/engineering - head = /obj/item/clothing/head/utility/hardhat/welding/doppler_command/engineering - neck = /obj/item/clothing/neck/doppler_mantle/engineering - -/datum/outfit/job/quartermaster - uniform = /obj/item/clothing/under/misc/doppler_uniform/cargo - head = /obj/item/clothing/head/beret/doppler_command/cargo - neck = /obj/item/clothing/neck/doppler_mantle/cargo - -/datum/outfit/job/hop - uniform = /obj/item/clothing/under/misc/doppler_uniform/service - head = /obj/item/clothing/head/beret/doppler_command/service - neck = /obj/item/clothing/neck/doppler_mantle/service - -/datum/outfit/job/captain - uniform = /obj/item/clothing/under/misc/doppler_uniform/command - head = /obj/item/clothing/head/beret/doppler_command/command - neck = /obj/item/clothing/neck/doppler_mantle/command - -/datum/outfit/job/warden //not technically a head, but we make fun of them with pink drip bc lmao - uniform = /obj/item/clothing/under/misc/doppler_uniform/security - head = /obj/item/clothing/head/utility/hardhat/welding/doppler_command/performer - neck = /obj/item/clothing/neck/doppler_mantle/performer - -/datum/outfit/job/hos - uniform = /obj/item/clothing/under/misc/doppler_uniform/security - head = /obj/item/clothing/head/beret/doppler_command/security - neck = /obj/item/clothing/neck/doppler_mantle/security - -// MEDICAL -/datum/outfit/job/doctor - uniform = /obj/item/clothing/under/misc/doppler_uniform/medical - -/datum/outfit/job/chemist - uniform = /obj/item/clothing/under/misc/doppler_uniform/medical - -/datum/outfit/job/coroner - uniform = /obj/item/clothing/under/misc/doppler_uniform/medical - -/datum/outfit/job/paramedic - uniform = /obj/item/clothing/under/misc/doppler_uniform/medical - -// SCIENCE -/datum/outfit/job/scientist - uniform = /obj/item/clothing/under/misc/doppler_uniform/science - -/datum/outfit/job/roboticist - uniform = /obj/item/clothing/under/misc/doppler_uniform/science - -/datum/outfit/job/geneticist - uniform = /obj/item/clothing/under/misc/doppler_uniform/science - -// ENGINEERING -/datum/outfit/job/engineer - uniform = /obj/item/clothing/under/misc/doppler_uniform/engineering - -/datum/outfit/job/atmos - uniform = /obj/item/clothing/under/misc/doppler_uniform/engineering - -// CARGO -/datum/outfit/job/cargo_tech - uniform = /obj/item/clothing/under/misc/doppler_uniform/cargo - -/datum/outfit/job/miner - uniform = /obj/item/clothing/under/misc/doppler_uniform/cargo - -/datum/outfit/job/bitrunner - uniform = /obj/item/clothing/under/misc/doppler_uniform/cargo - -// SERVICE -/datum/outfit/job/cook - uniform = /obj/item/clothing/under/misc/doppler_uniform/service - -/datum/outfit/job/bartender - uniform = /obj/item/clothing/under/misc/doppler_uniform/service - -/datum/outfit/job/curator - uniform = /obj/item/clothing/under/misc/doppler_uniform/service - -/datum/outfit/job/psychologist - uniform = /obj/item/clothing/under/misc/doppler_uniform/service - -/datum/outfit/job/chaplain - uniform = /obj/item/clothing/under/misc/doppler_uniform/service - -// COMMAND -/datum/outfit/job/lawyer - uniform = /obj/item/clothing/under/misc/doppler_uniform/command - -/datum/outfit/job/bridge_assistant - uniform = /obj/item/clothing/under/misc/doppler_uniform/command - head = /obj/item/clothing/head/utility/hardhat/welding/doppler_command/performer - -/datum/outfit/job/human_ai - uniform = /obj/item/clothing/under/misc/doppler_uniform/command - head = /obj/item/clothing/head/utility/hardhat/welding/doppler_command/science - -/datum/outfit/job/veteran_advisor - uniform = /obj/item/clothing/under/misc/doppler_uniform/command - head = /obj/item/clothing/head/utility/hardhat/welding/doppler_command/security - -// PERFORMERS -/datum/outfit/job/botanist - uniform = /obj/item/clothing/under/misc/doppler_uniform/performer - -/datum/outfit/job/clown - uniform = /obj/item/clothing/under/misc/doppler_uniform/performer - -/datum/outfit/job/mime - uniform = /obj/item/clothing/under/misc/doppler_uniform/performer - -/datum/outfit/job/janitor - uniform = /obj/item/clothing/under/misc/doppler_uniform/performer - -// SECURITY -/datum/outfit/job/detective - uniform = /obj/item/clothing/under/misc/doppler_uniform/security - -/datum/outfit/job/security - uniform = /obj/item/clothing/under/misc/doppler_uniform/security - -// ASSISTANTS & OTHER UNASSIGNED CREW -/datum/outfit/job - uniform = /obj/item/clothing/under/misc/doppler_uniform/standard/suit/overalls - /datum/colored_assistant/grey jumpsuits = list(/obj/item/clothing/under/misc/doppler_uniform/standard/suit/overalls) jumpskirts = list(/obj/item/clothing/under/misc/doppler_uniform/standard/suit/overalls) // TODO: jumpskirt variants for all of these @@ -201,94 +5,3 @@ /datum/colored_assistant/random jumpsuits = list(/obj/item/clothing/under/misc/doppler_uniform/standard/suit/overalls/random) jumpskirts = list(/obj/item/clothing/under/misc/doppler_uniform/standard/suit/overalls/random) // DITTO: see above - - - -/// BESPOKE UNIFORMS IN APPROPRIATE WARDROBE VENDORS -// Medical -/obj/machinery/vending/wardrobe/medi_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/medical] = 3 - . = ..() - -/obj/machinery/vending/wardrobe/chem_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/medical] = 3 - . = ..() - -/obj/machinery/vending/wardrobe/viro_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/medical] = 3 - . = ..() - -// Science -/obj/machinery/vending/wardrobe/science_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/science] = 3 - . = ..() - -/obj/machinery/vending/wardrobe/gene_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/science] = 3 - . = ..() - -/obj/machinery/vending/wardrobe/robo_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/science] = 3 - . = ..() - -// Engineering -/obj/machinery/vending/wardrobe/engi_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/engineering] = 3 - . = ..() - -/obj/machinery/vending/wardrobe/atmos_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/engineering] = 3 - . = ..() - -// Cargo -/obj/machinery/vending/wardrobe/cargo_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/cargo] = 3 - . = ..() - -// Service -/obj/machinery/vending/wardrobe/bar_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/service] = 3 - . = ..() - -/obj/machinery/vending/wardrobe/chef_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/service] = 3 - . = ..() - -/obj/machinery/vending/wardrobe/curator_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/service] = 3 - . = ..() - -//PSYCH HAS NO DEDICATED WARDROBE - -/obj/machinery/vending/wardrobe/chap_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/service] = 3 - . = ..() - -// Command -/obj/machinery/vending/wardrobe/law_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/command] = 3 - . = ..() - -// Performers/casual crew -/obj/machinery/vending/wardrobe/hydro_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/performer] = 3 - . = ..() - -// Security -/obj/machinery/vending/wardrobe/sec_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/security] = 3 - . = ..() - -/obj/machinery/vending/wardrobe/det_wardrobe/Initialize(mapload) - products[/obj/item/clothing/under/misc/doppler_uniform/security] = 3 - . = ..() - -// Autodrobe -/obj/machinery/vending/autodrobe/Initialize(mapload) - premium[/obj/item/clothing/under/misc/doppler_uniform/standard] = 10 - premium[/obj/item/clothing/under/misc/doppler_uniform/standard/cozy] = 10 - premium[/obj/item/clothing/under/misc/doppler_uniform/standard/suit] = 10 - premium[/obj/item/clothing/under/misc/doppler_uniform/standard/overalls] = 10 - premium[/obj/item/clothing/under/misc/doppler_uniform/standard/cozy/overalls] = 10 - premium[/obj/item/clothing/under/misc/doppler_uniform/standard/suit/overalls] = 10 - . = ..() diff --git a/modular_doppler/modular_cosmetics/icons/mob/belt/medical_extra.dmi b/modular_doppler/modular_cosmetics/icons/mob/belt/medical_extra.dmi new file mode 100644 index 0000000000000..3dd1f87b9ea83 Binary files /dev/null and b/modular_doppler/modular_cosmetics/icons/mob/belt/medical_extra.dmi differ diff --git a/modular_doppler/modular_cosmetics/icons/mob/under/dresses.dmi b/modular_doppler/modular_cosmetics/icons/mob/under/dresses.dmi new file mode 100644 index 0000000000000..40733fd98b75d Binary files /dev/null and b/modular_doppler/modular_cosmetics/icons/mob/under/dresses.dmi differ diff --git a/modular_doppler/modular_cosmetics/icons/mob/under/medical_extra.dmi b/modular_doppler/modular_cosmetics/icons/mob/under/medical_extra.dmi new file mode 100644 index 0000000000000..a0e8d3a92af42 Binary files /dev/null and b/modular_doppler/modular_cosmetics/icons/mob/under/medical_extra.dmi differ diff --git a/modular_doppler/modular_cosmetics/icons/obj/belt/medical_extra.dmi b/modular_doppler/modular_cosmetics/icons/obj/belt/medical_extra.dmi new file mode 100644 index 0000000000000..1a62c581eb826 Binary files /dev/null and b/modular_doppler/modular_cosmetics/icons/obj/belt/medical_extra.dmi differ diff --git a/modular_doppler/modular_cosmetics/icons/obj/under/dresses.dmi b/modular_doppler/modular_cosmetics/icons/obj/under/dresses.dmi new file mode 100644 index 0000000000000..691b03879a8ac Binary files /dev/null and b/modular_doppler/modular_cosmetics/icons/obj/under/dresses.dmi differ diff --git a/modular_doppler/modular_cosmetics/icons/obj/under/medical_extra.dmi b/modular_doppler/modular_cosmetics/icons/obj/under/medical_extra.dmi new file mode 100644 index 0000000000000..a7d721b662074 Binary files /dev/null and b/modular_doppler/modular_cosmetics/icons/obj/under/medical_extra.dmi differ diff --git a/modular_doppler/modular_cosmetics/toggle_clothes.dm b/modular_doppler/modular_cosmetics/toggle_clothes.dm new file mode 100644 index 0000000000000..c67acf51d79c1 --- /dev/null +++ b/modular_doppler/modular_cosmetics/toggle_clothes.dm @@ -0,0 +1,30 @@ +/datum/component/toggle_clothes + var/toggled = FALSE + var/toggled_icon_state + +/datum/component/toggle_clothes/Initialize(toggled_icon_state) + if(!isclothing(parent)) + return COMPONENT_INCOMPATIBLE + + if(!toggled_icon_state) + return COMPONENT_INCOMPATIBLE + + src.toggled_icon_state = toggled_icon_state + + RegisterSignal(parent, COMSIG_CLICK_ALT, PROC_REF(clothing_toggle)) + RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(handle_examine)) + +/datum/component/toggle_clothes/proc/handle_examine(datum/source, mob/user, list/examine_text) + SIGNAL_HANDLER + examine_text += span_notice("This item is toggleable! Alt Click to toggle!") + +/datum/component/toggle_clothes/proc/clothing_toggle(obj/item/clothing/source, mob/living/clicker) + SIGNAL_HANDLER + + toggled = !toggled + source.icon_state = (toggled ? toggled_icon_state : initial(source.icon_state)) + to_chat(clicker, "You toggle \the [source]!") + if(source.loc == clicker) + clicker.update_clothing(source.slot_flags) + source.update_appearance(UPDATE_ICON) + return CLICK_ACTION_SUCCESS diff --git a/modular_doppler/modular_crafting/code/sheet_types.dm b/modular_doppler/modular_crafting/code/sheet_types.dm index 7b90ade1d156a..d245b01445ab7 100644 --- a/modular_doppler/modular_crafting/code/sheet_types.dm +++ b/modular_doppler/modular_crafting/code/sheet_types.dm @@ -110,6 +110,7 @@ GLOBAL_LIST_INIT(doppler_leather_recipes, list( )) GLOBAL_LIST_INIT(doppler_leather_belt_recipes, list( + new/datum/stack_recipe("medical bandolier", /obj/item/storage/belt/med_bandolier, 5, category = CAT_CONTAINERS), new/datum/stack_recipe("xenoarch belt", /obj/item/storage/belt/utility/xenoarch, 4, category = CAT_CONTAINERS), )) diff --git a/modular_doppler/modular_items/hairbrush/code/hairbrush.dm b/modular_doppler/modular_items/hairbrush/code/hairbrush.dm new file mode 100644 index 0000000000000..dd31f7e954fa3 --- /dev/null +++ b/modular_doppler/modular_items/hairbrush/code/hairbrush.dm @@ -0,0 +1,56 @@ +/obj/item/hairbrush + name = "hairbrush" + desc = "A small, circular brush with an ergonomic grip for efficient brush application." + icon = 'modular_doppler/modular_items/hairbrush/icons/hairbrush.dmi' + icon_state = "brush" + inhand_icon_state = "inhand" + lefthand_file = 'modular_doppler/modular_items/hairbrush/icons/inhand_left.dmi' + righthand_file = 'modular_doppler/modular_items/hairbrush/icons/inhand_right.dmi' + w_class = WEIGHT_CLASS_TINY + var/brush_speed = 3 SECONDS + +/obj/item/hairbrush/attack(mob/target, mob/user) + if(target.stat == DEAD) + to_chat(usr, span_warning("There isn't much point brushing someone who can't appreciate it!")) + return + brush(target, user) + return COMPONENT_CANCEL_ATTACK_CHAIN + +/// Brushes someone, giving them a small mood boost +/obj/item/hairbrush/proc/brush(mob/living/target, mob/user) + if(ishuman(target)) + var/mob/living/carbon/human/human_target = target + var/obj/item/bodypart/head = human_target.get_bodypart(BODY_ZONE_HEAD) + + // Don't brush if you can't reach their head or cancel the action + if(!head) + to_chat(user, span_warning("[human_target] has no head!")) + return + if(human_target.is_mouth_covered(ITEM_SLOT_HEAD)) + to_chat(user, span_warning("You can't brush [human_target]'s hair while [human_target.p_their()] head is covered!")) + return + if(!do_after(user, brush_speed, human_target)) + return + + // Do 1 brute to their head if they're bald. Should've been more careful. + if(human_target.hairstyle == "Bald" || human_target.hairstyle == "Skinhead" && is_species(human_target, /datum/species/human)) //It can be assumed most anthros have hair on them! + human_target.visible_message(span_warning("[usr] scrapes the bristles uncomfortably over [human_target]'s scalp."), span_warning("You scrape the bristles uncomfortably over [human_target]'s scalp.")) + head.receive_damage(1) + return + + // Brush their hair + if(human_target == user) + human_target.visible_message(span_notice("[usr] brushes [usr.p_their()] hair!"), span_notice("You brush your hair.")) + human_target.add_mood_event("brushed", /datum/mood_event/brushed/self) + else + user.visible_message(span_notice("[usr] brushes [human_target]'s hair!"), span_notice("You brush [human_target]'s hair."), ignored_mobs=list(human_target)) + human_target.show_message(span_notice("[usr] brushes your hair!"), MSG_VISUAL) + human_target.add_mood_event("brushed", /datum/mood_event/brushed, user) + + else if(istype(target, /mob/living/basic/pet)) + if(!do_after(usr, brush_speed, target)) + return + to_chat(user, span_notice("[target] closes [target.p_their()] eyes as you brush [target.p_them()]!")) + var/mob/living/living_user = user + if(istype(living_user)) + living_user.add_mood_event("brushed", /datum/mood_event/brushed/pet, target) diff --git a/modular_doppler/modular_items/hairbrush/icons/hairbrush.dmi b/modular_doppler/modular_items/hairbrush/icons/hairbrush.dmi new file mode 100644 index 0000000000000..04ac93a3a11b7 Binary files /dev/null and b/modular_doppler/modular_items/hairbrush/icons/hairbrush.dmi differ diff --git a/modular_doppler/modular_items/hairbrush/icons/inhand_left.dmi b/modular_doppler/modular_items/hairbrush/icons/inhand_left.dmi new file mode 100644 index 0000000000000..f229f605918d4 Binary files /dev/null and b/modular_doppler/modular_items/hairbrush/icons/inhand_left.dmi differ diff --git a/modular_doppler/modular_items/hairbrush/icons/inhand_right.dmi b/modular_doppler/modular_items/hairbrush/icons/inhand_right.dmi new file mode 100644 index 0000000000000..d021f4ea64da7 Binary files /dev/null and b/modular_doppler/modular_items/hairbrush/icons/inhand_right.dmi differ diff --git a/modular_doppler/modular_mood/code/mood_events/brushed.dm b/modular_doppler/modular_mood/code/mood_events/brushed.dm new file mode 100644 index 0000000000000..945f8ba599a5e --- /dev/null +++ b/modular_doppler/modular_mood/code/mood_events/brushed.dm @@ -0,0 +1,14 @@ +/datum/mood_event/brushed + description = span_nicegreen("Someone brushed my hair recently, that felt great!\n") + mood_change = 3 + timeout = 4 MINUTES + +/datum/mood_event/brushed/add_effects(mob/brusher) + description = span_nicegreen("[brusher? brusher.name : "I"] brushed my hair recently, that felt great!\n") + +/datum/mood_event/brushed/self + description = span_nicegreen("I brushed my hair recently!\n") + mood_change = 2 // You can't hit all the right spots yourself, or something + +/datum/mood_event/brushed/pet/add_effects(mob/brushed_pet) + description = span_nicegreen("I brushed [brushed_pet] recently, they're so cute!\n") diff --git a/modular_doppler/modular_vending/code/_vending.dm b/modular_doppler/modular_vending/code/_vending.dm new file mode 100644 index 0000000000000..a9c79e743635e --- /dev/null +++ b/modular_doppler/modular_vending/code/_vending.dm @@ -0,0 +1,82 @@ +#define MINIMUM_CLOTHING_STOCK 5 + +/obj/machinery/vending + /// Additions to the `products` list of the vending machine, modularly. Will become null after Initialize, to free up memory. + var/list/products_doppler + /// Additions to the `product_categories` list of the vending machine, modularly. Will become null after Initialize, to free up memory. + var/list/product_categories_doppler + /// Additions to the `premium` list of the vending machine, modularly. Will become null after Initialize, to free up memory. + var/list/premium_doppler + /// Additions to the `contraband` list of the vending machine, modularly. Will become null after Initialize, to free up memory. + var/list/contraband_doppler + +/obj/machinery/vending/Initialize(mapload) + if(products_doppler) + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in products_doppler) + products[item_to_add] = products_doppler[item_to_add] + + if(product_categories_doppler) + for(var/category in product_categories_doppler) + var/already_exists = FALSE + for(var/existing_category in product_categories) + if(existing_category["name"] == category["name"]) + existing_category["products"] += category["products"] + already_exists = TRUE + break + + if(!already_exists) + product_categories += list(category) + + if(premium_doppler) + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in premium_doppler) + premium[item_to_add] = premium_doppler[item_to_add] + + if(contraband_doppler) + // We need this, because duplicates screw up the spritesheet! + for(var/item_to_add in contraband_doppler) + contraband[item_to_add] = contraband_doppler[item_to_add] + + // Time to make clothes amounts consistent! + for (var/obj/item/clothing/item in products) + if(products[item] < MINIMUM_CLOTHING_STOCK && allow_increase(item)) + products[item] = MINIMUM_CLOTHING_STOCK + + for (var/category in product_categories) + for(var/obj/item/clothing/item in category["products"]) + if(category["products"][item] < MINIMUM_CLOTHING_STOCK && allow_increase(item)) + category["products"][item] = MINIMUM_CLOTHING_STOCK + + for (var/obj/item/clothing/item in premium) + if(premium[item] < MINIMUM_CLOTHING_STOCK && allow_increase(item)) + premium[item] = MINIMUM_CLOTHING_STOCK + + QDEL_NULL(products_doppler) + QDEL_NULL(product_categories_doppler) + QDEL_NULL(premium_doppler) + QDEL_NULL(contraband_doppler) + return ..() + +/// This proc checks for forbidden traits cause it'd be pretty bad to have 5 insuls available to assistants roundstart at the vendor! +/obj/machinery/vending/proc/allow_increase(obj/item/clothing/clothing_path) + var/obj/item/clothing/clothing = new clothing_path() + + // Ignore earmuffs! + if(TRAIT_DEAF in clothing.clothing_traits) + return FALSE + // Don't touch sunglasses or welding helmets! + if(clothing.flash_protect == FLASH_PROTECTION_WELDER) + return FALSE + // Don't touch bodyarmour! + if(ispath(clothing, /obj/item/clothing/suit/armor)) + return FALSE + // Don't touch protective helmets, like riot helmets! + if(ispath(clothing, /obj/item/clothing/head/helmet)) + return FALSE + // Ignore all gloves, because it's almost impossible to check what they do... + if(ispath(clothing, /obj/item/clothing/gloves)) + return FALSE + return TRUE + +#undef MINIMUM_CLOTHING_STOCK diff --git a/modular_doppler/deforest_medical_items/code/vendor.dm b/modular_doppler/modular_vending/code/doppler_vendors/de_forest/vendor.dm similarity index 97% rename from modular_doppler/deforest_medical_items/code/vendor.dm rename to modular_doppler/modular_vending/code/doppler_vendors/de_forest/vendor.dm index a91b390d9333e..265bf226425eb 100644 --- a/modular_doppler/deforest_medical_items/code/vendor.dm +++ b/modular_doppler/modular_vending/code/doppler_vendors/de_forest/vendor.dm @@ -1,7 +1,7 @@ /obj/machinery/vending/deforest_medvend name = "\improper DeForest Med-Vend" desc = "A vending machine providing a selection of medical supplies." - icon = 'modular_doppler/deforest_medical_items/icons/vendor.dmi' + icon = 'modular_doppler/modular_vending/icons/de_forest_vendors.dmi' icon_state = "medvend" panel_type = "panel15" light_mask = "medvend-light-mask" diff --git a/modular_doppler/vending_machines/readme.md b/modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/readme.md similarity index 100% rename from modular_doppler/vending_machines/readme.md rename to modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/readme.md diff --git a/modular_doppler/vending_machines/code/vendor_containers.dm b/modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendor_containers.dm similarity index 98% rename from modular_doppler/vending_machines/code/vendor_containers.dm rename to modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendor_containers.dm index 7feb74dfbcfd6..f28cd8c1dc187 100644 --- a/modular_doppler/vending_machines/code/vendor_containers.dm +++ b/modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendor_containers.dm @@ -1,7 +1,7 @@ /obj/item/storage/box/foodpack name = "wrapped meal container" desc = "A generic brown paper food package, you aren't quite sure where this comes from." - icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon = 'modular_doppler/modular_vending/icons/imported_quick_foods.dmi' icon_state = "foodpack_generic_big" illustration = null custom_price = PAYCHECK_CREW * 1.8 diff --git a/modular_doppler/vending_machines/code/vendor_food.dm b/modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendor_food.dm similarity index 98% rename from modular_doppler/vending_machines/code/vendor_food.dm rename to modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendor_food.dm index 2e036b9ec31a2..129a1af0a3a8e 100644 --- a/modular_doppler/vending_machines/code/vendor_food.dm +++ b/modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendor_food.dm @@ -5,7 +5,7 @@ /obj/item/trash/empty_food_tray name = "empty plastic food tray" desc = "The condensation and what you can only hope are the leftovers of food make this a bit hard to reuse." - icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon = 'modular_doppler/modular_vending/icons/imported_quick_foods.dmi' icon_state = "foodtray_empty" custom_materials = list( /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, @@ -14,7 +14,7 @@ /obj/item/trash/empty_side_pack name = "empty side wrapper" desc = "Unfortunately, this no longer holds any sides to distract you from the other 'food'." - icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon = 'modular_doppler/modular_vending/icons/imported_quick_foods.dmi' icon_state = "foodpack_generic_trash" custom_materials = list( /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, @@ -41,7 +41,7 @@ /obj/item/food/vendor_tray_meal name = "\improper NT-Meal: Steak and Macaroni" desc = "A 'salisbury steak' drowning in something similar to a gravy, with a macaroni and cheese substitute mix sitting right beside it." - icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon = 'modular_doppler/modular_vending/icons/imported_quick_foods.dmi' icon_state = "foodtray_sad_steak" trash_type = /obj/item/trash/empty_food_tray food_reagents = list(/datum/reagent/consumable/nutriment = 8) diff --git a/modular_doppler/vending_machines/code/vendor_snacks.dm b/modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendor_snacks.dm similarity index 98% rename from modular_doppler/vending_machines/code/vendor_snacks.dm rename to modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendor_snacks.dm index 0b5fd481f2b4d..fc034a2874e74 100644 --- a/modular_doppler/vending_machines/code/vendor_snacks.dm +++ b/modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendor_snacks.dm @@ -3,7 +3,7 @@ /obj/item/food/vendor_snacks name = "\improper God's Strongest Snacks" desc = "You best hope you aren't a sinner. (You should never see this item please report it)" - icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon = 'modular_doppler/modular_vending/icons/imported_quick_foods.dmi' icon_state = "foodpack_generic" trash_type = /obj/item/trash/vendor_trash bite_consumption = 10 @@ -17,7 +17,7 @@ /obj/item/trash/vendor_trash name = "\improper God's Weakest Snacks" desc = "The leftovers of what was likely a great snack in a past time." - icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon = 'modular_doppler/modular_vending/icons/imported_quick_foods.dmi' icon_state = "foodpack_generic_trash" custom_materials = list( /datum/material/plastic = HALF_SHEET_MATERIAL_AMOUNT, @@ -86,7 +86,7 @@ /obj/item/reagent_containers/cup/glass/waterbottle/tea name = "bottle of tea" desc = "A bottle of tea brought to you in a convenient plastic bottle." - icon = 'modular_doppler/vending_machines/icons/imported_quick_foods.dmi' + icon = 'modular_doppler/modular_vending/icons/imported_quick_foods.dmi' icon_state = "tea_bottle" list_reagents = list(/datum/reagent/consumable/tea = 40) cap_icon_state = "bottle_cap_tea" diff --git a/modular_doppler/vending_machines/code/vendors.dm b/modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendors.dm similarity index 99% rename from modular_doppler/vending_machines/code/vendors.dm rename to modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendors.dm index 2af2490c47b3c..630e17790d0c0 100644 --- a/modular_doppler/vending_machines/code/vendors.dm +++ b/modular_doppler/modular_vending/code/doppler_vendors/imported_vendors/vendors.dm @@ -22,7 +22,7 @@ new vendor_refill(target_crate) /obj/machinery/vending/imported - icon = 'modular_doppler/vending_machines/icons/imported_vendors.dmi' + icon = 'modular_doppler/modular_vending/icons/imported_vendors.dmi' icon_state = null panel_type = "panel15" default_price = PAYCHECK_CREW * 0.5 diff --git a/modular_doppler/modular_vending/code/tg_vendors/autodrobe.dm b/modular_doppler/modular_vending/code/tg_vendors/autodrobe.dm new file mode 100644 index 0000000000000..5cb4dba1c3e29 --- /dev/null +++ b/modular_doppler/modular_vending/code/tg_vendors/autodrobe.dm @@ -0,0 +1,50 @@ +/obj/machinery/vending/autodrobe + product_categories_doppler = list( + list( + "name" = "Costumes", + "icon" = "mask", + "products" = list( + /obj/item/clothing/head/costume/sombrero = 5, + ), + ), + list( + "name" = "Entertainers", + "icon" = "masks-theater", + "products" = list( + /obj/item/clothing/under/misc/doppler_uniform/performer = 3, + /obj/item/clothing/head/costume/jesteralt = 1, + /obj/item/clothing/under/rank/civilian/clown/jesteralt = 1, + ), + ), + list( + "name" = "Service", + "icon" = "kitchen-set", + "products" = list( + /obj/item/clothing/under/costume/buttondown/slacks/service = 1, + /obj/item/clothing/under/costume/buttondown/skirt/service = 1, + /obj/item/clothing/neck/bowtie = 2, + /obj/item/clothing/accessory/waistcoat = 1, + /obj/item/clothing/under/suit/waiter = 1, + /obj/item/clothing/suit/apron = 1, + /obj/item/clothing/suit/apron/overalls = 1, + /obj/item/clothing/head/costume/maidheadband = 1, + /obj/item/clothing/under/costume/maid = 1, + /obj/item/clothing/gloves/maid = 1, + /obj/item/clothing/neck/maid = 1, + /obj/item/clothing/accessory/maidapron = 1, + /obj/item/clothing/neck/maid_neck_cover = 1, + ), + ), + list( + "name" = "Undersuit", + "icon" = "shirt", + "products" = list( + /obj/item/clothing/under/misc/doppler_uniform/standard = 5, + /obj/item/clothing/under/misc/doppler_uniform/standard/cozy = 5, + /obj/item/clothing/under/misc/doppler_uniform/standard/suit = 5, + /obj/item/clothing/under/misc/doppler_uniform/standard/overalls = 5, + /obj/item/clothing/under/misc/doppler_uniform/standard/cozy/overalls = 5, + /obj/item/clothing/under/misc/doppler_uniform/standard/suit/overalls = 5, + ), + ), + ) diff --git a/modular_doppler/modular_vending/code/tg_vendors/boozeomat.dm b/modular_doppler/modular_vending/code/tg_vendors/boozeomat.dm new file mode 100644 index 0000000000000..9d782a07e8dc3 --- /dev/null +++ b/modular_doppler/modular_vending/code/tg_vendors/boozeomat.dm @@ -0,0 +1,10 @@ +/obj/machinery/vending/boozeomat + product_categories_doppler = list( + list( + "name" = "Synth", + "icon" = "robot", + "products" = list( + // /obj/item/reagent_containers/cup/soda_cans/doppler/synthanolcan = 6, + ), + ), + ) diff --git a/modular_doppler/modular_vending/code/tg_vendors/clothesmate.dm b/modular_doppler/modular_vending/code/tg_vendors/clothesmate.dm new file mode 100644 index 0000000000000..27762e456f1a5 --- /dev/null +++ b/modular_doppler/modular_vending/code/tg_vendors/clothesmate.dm @@ -0,0 +1,67 @@ +/obj/machinery/vending/clothing + product_categories_doppler = list( + list( + "name" = "Head", + "icon" = "hat-cowboy", + "products" = list( + /obj/item/clothing/head/fedora= 5, + /obj/item/clothing/head/fedora/beige = 5, + /obj/item/clothing/head/fedora/white = 5, + /obj/item/clothing/head/standalone_hood = 5, + /obj/item/clothing/head/bow = 5, + /obj/item/clothing/head/bow/small = 5, + /obj/item/clothing/head/bow/back = 5, + /obj/item/clothing/head/bow/sweet = 5, + ), + ), + + list( + "name" = "Accessories", + "icon" = "glasses", + "products" = list( + /obj/item/clothing/neck/ranger_poncho = 5, + /obj/item/clothing/neck/mantle/recolorable = 5, + /obj/item/clothing/neck/long_cape = 5, + /obj/item/clothing/neck/wide_cape = 5, + /obj/item/clothing/neck/robe_cape = 5, + /obj/item/clothing/neck/face_scarf = 5, + ), + ), + +/* list( + "name" = "Under", + "icon" = "shirt", + "products" = list( + ), + ), */ + + list( + "name" = "Suits & Skirts", + "icon" = "vest", + "products" = list( + /obj/item/clothing/under/dress/doppler/pinktutu = 5, + /obj/item/clothing/under/dress/doppler/flower = 5, + /obj/item/clothing/under/dress/doppler/strapless = 5, + /obj/item/clothing/under/dress/doppler/pentagram = 5, + /obj/item/clothing/suit/jacket/doppler/departmental_jacket = 5, + ), + ), + +/* list( + "name" = "Shoes", + "icon" = "socks", + "products" = list( + ), + ), */ + +/* //Only put clothing in Special thats either Families or exteremly out-of-place + list( + "name" = "Special", + "icon" = "star", + "products" = list( + ) + ) */ + ) + +/* premium_doppler = list( //being here means you're artificially rare, congratulations + ) */ diff --git a/modular_doppler/modular_vending/code/tg_vendors/cola.dm b/modular_doppler/modular_vending/code/tg_vendors/cola.dm new file mode 100644 index 0000000000000..421602bd042c5 --- /dev/null +++ b/modular_doppler/modular_vending/code/tg_vendors/cola.dm @@ -0,0 +1,5 @@ +/obj/machinery/vending/cola + products_doppler = list( + /obj/item/reagent_containers/cup/soda_cans/doppler/lubricola = 10, + /obj/item/reagent_containers/cup/soda_cans/doppler/welding_fizz = 10, + ) diff --git a/modular_doppler/modular_vending/code/tg_vendors/engivend.dm b/modular_doppler/modular_vending/code/tg_vendors/engivend.dm new file mode 100644 index 0000000000000..1552731a9df11 --- /dev/null +++ b/modular_doppler/modular_vending/code/tg_vendors/engivend.dm @@ -0,0 +1,6 @@ +/obj/machinery/vending/engivend + products_doppler = list( + /obj/item/clothing/glasses/meson/engine = 5, + /obj/item/forcefield_projector = 4, + /obj/item/storage/bag/construction = 2, + ) diff --git a/modular_doppler/modular_vending/code/tg_vendors/games.dm b/modular_doppler/modular_vending/code/tg_vendors/games.dm new file mode 100644 index 0000000000000..23a9de7915518 --- /dev/null +++ b/modular_doppler/modular_vending/code/tg_vendors/games.dm @@ -0,0 +1,20 @@ +/obj/machinery/vending/games + product_categories_doppler = list( + list( + "name" = "Toys", + "icon" = "hat-wizard", + "products" = list( + /obj/item/storage/briefcase/secure/wargame_kit = 3, + ), + ), + list( + "name" = "Hair", + "icon" = "scissors", + "products" = list( + /obj/item/hairbrush = 3, + /obj/item/clothing/head/hair_tie = 3, + /obj/item/clothing/head/hair_tie/scrunchie = 3, + /obj/item/clothing/head/hair_tie/plastic_beads = 3, + ), + ) + ) diff --git a/modular_doppler/modular_vending/code/tg_vendors/megaseed.dm b/modular_doppler/modular_vending/code/tg_vendors/megaseed.dm new file mode 100644 index 0000000000000..5f09d759e9dd1 --- /dev/null +++ b/modular_doppler/modular_vending/code/tg_vendors/megaseed.dm @@ -0,0 +1,4 @@ +/obj/machinery/vending/hydroseeds //sneed + contraband_doppler = list( + /obj/item/seeds/tea/catnip = 3, + ) diff --git a/modular_doppler/modular_vending/code/tg_vendors/wardrobes.dm b/modular_doppler/modular_vending/code/tg_vendors/wardrobes.dm new file mode 100644 index 0000000000000..0f74e833e49ea --- /dev/null +++ b/modular_doppler/modular_vending/code/tg_vendors/wardrobes.dm @@ -0,0 +1,130 @@ +/obj/machinery/vending/wardrobe/medi_wardrobe + products_doppler = list( + /obj/item/clothing/under/misc/doppler_uniform/medical = 5, + /obj/item/radio/headset/headset_med = 3, + /obj/item/clothing/gloves/latex/nitrile = 2, + /obj/item/clothing/suit/toggle/labcoat/hospitalgown = 5, + /obj/item/storage/belt/med_bandolier = 2, + /obj/item/clothing/suit/jacket/doppler/departmental_jacket/med = 2, + ) + +/obj/machinery/vending/wardrobe/engi_wardrobe + products_doppler = list( + /obj/item/clothing/under/misc/doppler_uniform/engineering = 5, + /obj/item/radio/headset/headset_eng = 3, + /obj/item/clothing/under/misc/overalls = 3, + /obj/item/clothing/suit/jacket/doppler/departmental_jacket/engi = 3, + /obj/item/clothing/head/utility/hardhat/orange = 2, + /obj/item/clothing/head/utility/hardhat/welding/orange = 2, + /obj/item/clothing/head/utility/hardhat/dblue = 2, + /obj/item/clothing/head/utility/hardhat/welding/dblue = 2, + /obj/item/clothing/head/utility/hardhat/red = 2, + ) + +/obj/machinery/vending/wardrobe/atmos_wardrobe + products_doppler = list( + /obj/item/clothing/glasses/meson/engine = 2, + /obj/item/clothing/head/beret/atmos = 4, + ) + +/obj/machinery/vending/wardrobe/cargo_wardrobe + products_doppler = list( + /obj/item/clothing/suit/jacket/doppler/departmental_jacket/supply = 3, + /obj/item/clothing/under/misc/doppler_uniform/cargo = 5, + ) + +/obj/machinery/vending/wardrobe/robo_wardrobe + products_doppler = list( + /obj/item/clothing/head/beret/science/fancy/robo = 2, + /obj/item/tank/internals/anesthetic = 2, + /obj/item/clothing/mask/breath = 2, + /obj/item/reagent_containers/cup/bottle/morphine = 2, + /obj/item/reagent_containers/syringe = 2, +// /obj/item/reagent_containers/spray/hercuri/chilled = 2, +// /obj/item/reagent_containers/spray/dinitrogen_plasmide = 2, + /obj/item/clothing/gloves/color/black = 2, // fire resistant, allows the robo to painlessly mold metal. also it's down here because it's a treatment item + /obj/item/bonesetter = 2, // for dislocations + /obj/item/stack/medical/gauze = 4, // for ALL wounds + /obj/item/healthanalyzer/simple = 2, + /obj/item/storage/backpack/custom = 2, + /obj/item/storage/backpack/satchel/custom = 2, + /obj/item/storage/backpack/duffelbag/custom = 2, + ) + +/obj/machinery/vending/wardrobe/science_wardrobe + products_doppler = list( + /obj/item/clothing/under/misc/doppler_uniform/science = 5, + /obj/item/clothing/suit/jacket/doppler/departmental_jacket/sci = 3, + ) + +/obj/machinery/vending/wardrobe/sec_wardrobe + products_doppler = list( + /obj/item/clothing/under/misc/doppler_uniform/security = 5, + /obj/item/clothing/suit/jacket/doppler/departmental_jacket/sec = 3, + ) + + +/*/obj/machinery/vending/wardrobe/hydro_wardrobe + products_doppler = list( + ) */ + +/*/obj/machinery/vending/wardrobe/bar_wardrobe + products_doppler = list( + ) */ + +/obj/machinery/vending/wardrobe/chap_wardrobe + products_doppler = list( + /obj/item/clothing/suit/costume/nemes = 1, + /obj/item/clothing/head/costume/nemes = 1, + /obj/item/clothing/head/costume/pharaoh = 1, + ) + +/obj/machinery/vending/wardrobe/chef_wardrobe + products_doppler = list( + /obj/item/clothing/under/misc/doppler_uniform/service = 5, + ) + +/obj/machinery/vending/cart + products_doppler = list( + /obj/item/radio/headset/headset_srv = 3, + ) + +/obj/machinery/vending/wardrobe/chem_wardrobe + products_doppler = list( + /obj/item/clothing/under/rank/medical/chemist/pharmacologist = 2, + /obj/item/clothing/under/rank/medical/chemist/pharmacologist/skirt = 2, + /obj/item/clothing/head/beret/medical/chemist = 2, + ) + +/obj/machinery/vending/wardrobe/viro_wardrobe + products_doppler = list( + /obj/item/clothing/head/beret/medical/virologist = 2, + ) + +/obj/machinery/vending/wardrobe/det_wardrobe + products_doppler = list( + /obj/item/clothing/head/fedora/beige = 2, + /obj/item/clothing/head/fedora/white = 2, + ) + +/*/obj/machinery/vending/wardrobe/law_wardrobe + products_doppler = list( + ) */ + + +/// Removes given list of products. Must be called before build_inventory() to actually prevent the records from being created. +/obj/machinery/vending/proc/remove_products(list/paths_to_remove) + if(!length(paths_to_remove)) + return + for(var/typepath as anything in products) + for(var/to_remove as anything in paths_to_remove) + if(ispath(typepath, to_remove)) + products.Remove(typepath) + +/obj/machinery/vending/ + /// list of products to exclude when building the vending machine's inventory + var/list/excluded_products + +/obj/machinery/vending/Initialize(mapload) + remove_products(excluded_products) + return ..() diff --git a/modular_doppler/deforest_medical_items/icons/vendor.dmi b/modular_doppler/modular_vending/icons/de_forest_vendors.dmi similarity index 100% rename from modular_doppler/deforest_medical_items/icons/vendor.dmi rename to modular_doppler/modular_vending/icons/de_forest_vendors.dmi diff --git a/modular_doppler/vending_machines/icons/imported_quick_foods.dmi b/modular_doppler/modular_vending/icons/imported_quick_foods.dmi similarity index 100% rename from modular_doppler/vending_machines/icons/imported_quick_foods.dmi rename to modular_doppler/modular_vending/icons/imported_quick_foods.dmi diff --git a/modular_doppler/vending_machines/icons/imported_vendors.dmi b/modular_doppler/modular_vending/icons/imported_vendors.dmi similarity index 100% rename from modular_doppler/vending_machines/icons/imported_vendors.dmi rename to modular_doppler/modular_vending/icons/imported_vendors.dmi diff --git a/tgstation.dme b/tgstation.dme index ecd9ba9eecf86..00a956e83e12e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6523,7 +6523,6 @@ #include "modular_doppler\deforest_medical_items\code\medstation.dm" #include "modular_doppler\deforest_medical_items\code\storage_items.dm" #include "modular_doppler\deforest_medical_items\code\treatment_zone_projector.dm" -#include "modular_doppler\deforest_medical_items\code\vendor.dm" #include "modular_doppler\deforest_medical_items\code\vulnerable_status_effect.dm" #include "modular_doppler\deforest_medical_items\code\chemicals\demoneye.dm" #include "modular_doppler\deforest_medical_items\code\chemicals\twitch.dm" @@ -6644,15 +6643,19 @@ #include "modular_doppler\modular_antagonists\sapper_gang\code\creditminer.dm" #include "modular_doppler\modular_antagonists\sapper_gang\code\paper_premade.dm" #include "modular_doppler\modular_antagonists\sapper_gang\code\sapperpad.dm" +#include "modular_doppler\modular_cosmetics\toggle_clothes.dm" +#include "modular_doppler\modular_cosmetics\code\garment_bag_overrides.dm" #include "modular_doppler\modular_cosmetics\code\jacket_pockets.dm" #include "modular_doppler\modular_cosmetics\code\towels.dm" #include "modular_doppler\modular_cosmetics\code\uniform_overrides.dm" +#include "modular_doppler\modular_cosmetics\code\belt\med_bandolier.dm" #include "modular_doppler\modular_cosmetics\code\face\basemasks.dm" #include "modular_doppler\modular_cosmetics\code\face\glasses.dm" #include "modular_doppler\modular_cosmetics\code\face\masks.dm" #include "modular_doppler\modular_cosmetics\code\hands\gloves.dm" #include "modular_doppler\modular_cosmetics\code\hands\rings.dm" #include "modular_doppler\modular_cosmetics\code\hats\doppler_command_hats.dm" +#include "modular_doppler\modular_cosmetics\code\head\bows.dm" #include "modular_doppler\modular_cosmetics\code\head\hair_tie.dm" #include "modular_doppler\modular_cosmetics\code\head\hats.dm" #include "modular_doppler\modular_cosmetics\code\head\head.dm" @@ -6671,6 +6674,8 @@ #include "modular_doppler\modular_cosmetics\code\suits\modsuit.dm" #include "modular_doppler\modular_cosmetics\code\suits\shirts.dm" #include "modular_doppler\modular_cosmetics\code\under\doppler_uniforms.dm" +#include "modular_doppler\modular_cosmetics\code\under\dresses.dm" +#include "modular_doppler\modular_cosmetics\code\under\medical_extra.dm" #include "modular_doppler\modular_cosmetics\code\under\miscellania.dm" #include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_face.dm" #include "modular_doppler\modular_cosmetics\GAGS\greyscale_configs_head.dm" @@ -6776,6 +6781,7 @@ #include "modular_doppler\modular_items\conversion_kits.dm" #include "modular_doppler\modular_items\invisible_gear.dm" #include "modular_doppler\modular_items\shipchem_overrides.dm" +#include "modular_doppler\modular_items\hairbrush\code\hairbrush.dm" #include "modular_doppler\modular_items\hyposprays\code\autolathe_designs.dm" #include "modular_doppler\modular_items\hyposprays\code\hypospray_kits.dm" #include "modular_doppler\modular_items\hyposprays\code\hyposprays_II.dm" @@ -6794,6 +6800,7 @@ #include "modular_doppler\modular_medical\wounds\muscle.dm" #include "modular_doppler\modular_medical\wounds\wound_effects.dm" #include "modular_doppler\modular_mob_spawn\code\mob_spawn.dm" +#include "modular_doppler\modular_mood\code\mood_events\brushed.dm" #include "modular_doppler\modular_quirks\excitable\quirk.dm" #include "modular_doppler\modular_quirks\overwrites\musician.dm" #include "modular_doppler\modular_quirks\paycheck_rations\code\quirk.dm" @@ -6825,6 +6832,20 @@ #include "modular_doppler\modular_species\species_types\snails\snail_bodyparts.dm" #include "modular_doppler\modular_species\species_types\snails\organs\snail_heart.dm" #include "modular_doppler\modular_species\species_types\snails\organs\snail_liver.dm" +#include "modular_doppler\modular_vending\code\_vending.dm" +#include "modular_doppler\modular_vending\code\doppler_vendors\de_forest\vendor.dm" +#include "modular_doppler\modular_vending\code\doppler_vendors\imported_vendors\vendor_containers.dm" +#include "modular_doppler\modular_vending\code\doppler_vendors\imported_vendors\vendor_food.dm" +#include "modular_doppler\modular_vending\code\doppler_vendors\imported_vendors\vendor_snacks.dm" +#include "modular_doppler\modular_vending\code\doppler_vendors\imported_vendors\vendors.dm" +#include "modular_doppler\modular_vending\code\tg_vendors\autodrobe.dm" +#include "modular_doppler\modular_vending\code\tg_vendors\boozeomat.dm" +#include "modular_doppler\modular_vending\code\tg_vendors\clothesmate.dm" +#include "modular_doppler\modular_vending\code\tg_vendors\cola.dm" +#include "modular_doppler\modular_vending\code\tg_vendors\engivend.dm" +#include "modular_doppler\modular_vending\code\tg_vendors\games.dm" +#include "modular_doppler\modular_vending\code\tg_vendors\megaseed.dm" +#include "modular_doppler\modular_vending\code\tg_vendors\wardrobes.dm" #include "modular_doppler\modular_weapons\code\gunsets.dm" #include "modular_doppler\modular_weapons\company_and_or_faction_based\carwo_defense_systems\gunsets.dm" #include "modular_doppler\modular_weapons\manufacturer_examine\code\gun_company_additions.dm" @@ -6868,10 +6889,6 @@ #include "modular_doppler\time_clock\code\off_duty_component.dm" #include "modular_doppler\time_clock\code\sign.dm" #include "modular_doppler\tool_poweruse\items.dm" -#include "modular_doppler\vending_machines\code\vendor_containers.dm" -#include "modular_doppler\vending_machines\code\vendor_food.dm" -#include "modular_doppler\vending_machines\code\vendor_snacks.dm" -#include "modular_doppler\vending_machines\code\vendors.dm" #include "modular_doppler\verbs\code\communication.dm" #include "modular_doppler\verbs\code\do_checks.dm" #include "modular_doppler\verbs\code\do_verbs.dm"