diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index e0f685e5605..ed652ad8ea4 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -181,10 +181,6 @@ if(isnewplayer(src.mob)) to_chat(src, "If the title screen is black, resources are still downloading. Please be patient until the title screen appears.") - if(src.mob && src.mob.bellies_loaded == FALSE) // Quick fix - log_debug("Fallback reload of bellies from [src] into [src.mob]") - src.mob.init_vore() - GLOB.clients += src GLOB.directory[ckey] = src diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index 1d6d57ac2bb..4d28a7bc1dc 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -58,11 +58,23 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O // Sanitize for non-existent keys. if(ear_style && !(ear_style in get_available_styles(global.ear_styles_list))) - ear_style = null + var/backup = get_available_backup_style(global.ear_styles_list, ear_style) + if(backup) + ear_style = backup + else + ear_style = null if(wing_style && !(wing_style in get_available_styles(global.wing_styles_list))) - wing_style = null + var/backup = get_available_backup_style(global.wing_styles_list, wing_style) + if(backup) + wing_style = backup + else + wing_style = null if(tail_style && !(tail_style in get_available_styles(global.tail_styles_list))) - tail_style = null + var/backup = get_available_backup_style(global.tail_styles_list, tail_style) + if(backup) + tail_style = backup + else + tail_style = null /datum/preferences/proc/get_available_styles(var/style_list) . = list("Normal" = null) @@ -76,6 +88,22 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O continue .[instance.name] = instance +/datum/preferences/proc/get_available_backup_style(var/style_list, var/our_value) + . = list("Normal" = null) + for(var/path in style_list) + var/datum/sprite_accessory/instance = style_list[path] + if(!istype(instance)) + continue + if(!instance.backup_name) + continue + if(!(our_value in instance.backup_name)) + continue + if(instance.ckeys_allowed && (!client || !(client.ckey in instance.ckeys_allowed))) + continue + if(instance.species_allowed && (!species || !(species in instance.species_allowed)) && (!client || !check_rights(R_ADMIN | R_EVENT | R_FUN, 0, client)) && (!custom_base || !(custom_base in instance.species_allowed))) //VOREStation Edit: Custom Species + continue + return instance.name + /datum/preferences/proc/mass_edit_marking_list(var/marking, var/change_on = TRUE, var/change_color = TRUE, var/marking_value = null, var/on = TRUE, var/color = "#000000") var/datum/sprite_accessory/marking/mark_datum = body_marking_styles_list[marking] var/list/new_marking = marking_value||mark_datum.body_parts diff --git a/code/modules/clothing/masks/tesh_synth_facemask.dm b/code/modules/clothing/masks/tesh_synth_facemask.dm new file mode 100644 index 00000000000..33141e2465b --- /dev/null +++ b/code/modules/clothing/masks/tesh_synth_facemask.dm @@ -0,0 +1,73 @@ +//TESHARI FACE MASK //Defning all the procs in one go +/obj/item/clothing/mask/synthfacemask + name = "Synth Face" + desc = "A round dark muzzle made of LEDs." + flags = PHORONGUARD //Since it cant easily be removed... + item_flags = AIRTIGHT | FLEXIBLEMATERIAL | BLOCK_GAS_SMOKE_EFFECT //This should make it properly work as a mask... and allow you to eat stuff through it! + body_parts_covered = FACE|EYES + icon = 'icons/mob/species/teshari/synth_facemask.dmi' + icon_override = 'icons/mob/species/teshari/synth_facemask.dmi' + icon_state = "synth_facemask" +// origin_tech = list(TECH_ILLEGAL = 1) // RS REMOVE - Loadout item + var/lstat + var/visor_state = "Neutral" //Separating this from lstat so that it could potentially be used for an override system or something + var/mob/living/carbon/maskmaster + +/obj/item/clothing/mask/synthfacemask/equipped() + ..() + var/mob/living/carbon/human/H = loc + if(istype(H) && H.wear_mask == src) + canremove = 0 + maskmaster = H + START_PROCESSING(SSprocessing, src) + +/obj/item/clothing/mask/synthfacemask/dropped() + canremove = 1 + maskmaster = null + STOP_PROCESSING(SSprocessing, src) + return ..() + +/obj/item/clothing/mask/synthfacemask/Destroy() + . = ..() + STOP_PROCESSING(SSprocessing, src) + +/obj/item/clothing/mask/synthfacemask/mob_can_equip(var/mob/living/carbon/human/user, var/slot, var/disable_warning = FALSE) + if (!..()) + return 0 + if(istype(user)) + var/obj/item/organ/external/E = user.organs_by_name[BP_HEAD] + if(istype(E) && (E.robotic >= ORGAN_ROBOT)) + return 1 + to_chat(user, "You must have a compatible robotic head to install this upgrade.") + return 0 + +/obj/item/clothing/mask/synthfacemask/update_icon() + var/mob/living/carbon/human/H = loc + switch(visor_state) + if (DEAD) + icon_state = "synth_facemask_dead" + else + icon_state = "synth_facemask" + if(istype(H)) H.update_inv_wear_mask() + +/obj/item/clothing/mask/synthfacemask/process() + if(maskmaster && lstat != maskmaster.stat) + lstat = maskmaster.stat + visor_state = "Neutral" //This does nothing at the moment, but it's there incase anyone wants to add more states. + //Maybe a verb that sets an emote override here + if(lstat == DEAD) + visor_state = DEAD + update_icon() + + +//LOADOUT ITEM +/datum/gear/mask/synthface/ + display_name = "Synth Facemask (Teshari)" + path = /obj/item/clothing/mask/synthfacemask + sort_category = "Xenowear" + whitelisted = SPECIES_TESHARI + cost = 1 + +/datum/gear/mask/synthface/New() + ..() + gear_tweaks += list(gear_tweak_free_color_choice) diff --git a/code/modules/mob/living/carbon/human/examine_vr.dm b/code/modules/mob/living/carbon/human/examine_vr.dm index d153ff5701b..1ece610464a 100644 --- a/code/modules/mob/living/carbon/human/examine_vr.dm +++ b/code/modules/mob/living/carbon/human/examine_vr.dm @@ -38,21 +38,21 @@ message = nutrition_messages[1] if(50 to 99) message = nutrition_messages[2] - if(100 to 4140) + if(100 to 1800) message = nutrition_messages[3] - if(4141 to 8290) // Fat. + if(1801 to 2800) // Fat. message = nutrition_messages[4] - if(8291 to 11611) + if(2801 to 3900) message = nutrition_messages[5] - if(11612 to 16052) // One person fully digested. + if(3901 to 10000) // One person fully digested. message = nutrition_messages[6] - if(16053 to 24933) // Two people. + if(10001 to 18000) // Two people. message = nutrition_messages[7] - if(24944 to 33814) // Three people. + if(18001 to 27000) // Three people. message = nutrition_messages[8] - if(33815 to 42530) // Four people. + if(27001 to 39000) // Four people. message = nutrition_messages[9] - if(42530 to INFINITY) // More. + if(39001 to INFINITY) // More. message = nutrition_messages[10] if(message) message = "[message]" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index b5030a40f0c..62359de0d74 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1614,6 +1614,12 @@ /mob/living/carbon/human/can_feel_pain(var/obj/item/organ/check_organ) if(isSynthetic()) return 0 + //RS ADD START + if(!species.digest_pain && (isbelly(src.loc) || istype(src.loc, /turf/simulated/floor/water/digestive_enzymes))) + var/obj/belly/b = src.loc + if(b.digest_mode == DM_DIGEST || b.digest_mode == DM_SELECT) + return FALSE + //RS ADD END for(var/datum/modifier/M in modifiers) if(M.pain_immunity == TRUE) return 0 diff --git a/code/modules/mob/living/carbon/human/species/species_rs.dm b/code/modules/mob/living/carbon/human/species/species_rs.dm index 74e3dc0ca8a..0904c357cb6 100644 --- a/code/modules/mob/living/carbon/human/species/species_rs.dm +++ b/code/modules/mob/living/carbon/human/species/species_rs.dm @@ -1,8 +1,9 @@ /datum/species var/vore_belly_default_variant = "H" + var/digest_pain = TRUE /datum/species/unathi vore_belly_default_variant = "L" /datum/species/teshari - vore_belly_default_variant = "T" \ No newline at end of file + vore_belly_default_variant = "T" diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index ffafc749852..35ba73fd09d 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -1008,3 +1008,11 @@ desc = "Makes your nice clawed, scaled, hooved, armored, or otherwise just awfully calloused feet immune to glass shards." cost = 0 var_changes = list("flags" = NO_MINOR_CUT) //Checked the flag is only used by shard stepping. +//RS ADD +/datum/trait/neutral/nodigestpain + name = "Painless Digestion" + desc = "Makes it so that you feel no pain from being digested, even if you otherwise would." + cost = 0 + var_changes = list("digest_pain" = FALSE) + custom_only = FALSE + can_take = ORGANICS diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 398c748ccce..bf5374dbba6 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -83,4 +83,8 @@ if(cloaked && cloaked_selfimage) client.images += cloaked_selfimage - SEND_SIGNAL(src, COMSIG_MOB_CLIENT_LOGIN, client) \ No newline at end of file + SEND_SIGNAL(src, COMSIG_MOB_CLIENT_LOGIN, client) + + if(src.client && src.bellies_loaded == FALSE) // Quick fix + log_debug("Fallback reload of bellies from [src.client] into [src]") + src.init_vore() diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 5bba1ce72dd..1fa5b26c77d 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -49,6 +49,8 @@ var/sorting_group //For use in the Preference menu + var/list/backup_name = null //RS ADD - compat + /* //////////////////////////// / =--------------------= / diff --git a/code/modules/mob/new_player/sprite_accessories_ear.dm b/code/modules/mob/new_player/sprite_accessories_ear.dm index da2e870eb71..7e738d3f8fe 100644 --- a/code/modules/mob/new_player/sprite_accessories_ear.dm +++ b/code/modules/mob/new_player/sprite_accessories_ear.dm @@ -34,6 +34,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "ears_plain-inner" + backup_name = list( + "tajaran, colorable (old)" + ) /datum/sprite_accessory/ears/taj_ears_tall name = "Tajaran Tall Ears" @@ -41,6 +44,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "msai_plain-inner" + backup_name = list( + "tajaran tall, colorable (old)" + ) /datum/sprite_accessory/ears/alt_ram_horns name = "Solid ram horns" @@ -60,6 +66,9 @@ icon_state = "foxearshc" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "highlander zorren ears, colorable" + ) /datum/sprite_accessory/ears/fenearshc name = "flatland zorren ears" @@ -67,12 +76,18 @@ extra_overlay = "fenears-inner" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "flatland zorren ears, colorable" + ) /datum/sprite_accessory/ears/sergalhc name = "Sergal ears" icon_state = "serg_plain_s" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "Sergal ears, colorable" + ) /datum/sprite_accessory/ears/mousehc name = "mouse" @@ -80,12 +95,19 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "mouseinner" + backup_name = list( + "mouse, colorable", + ) /datum/sprite_accessory/ears/mousehcno name = "mouse, no inner" icon_state = "mouse" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "mouse, colorable, no inner", + "mouse-grey" + ) /datum/sprite_accessory/ears/wolfhc name = "wolf" @@ -93,12 +115,23 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "wolfinner" + backup_name = list( + "wolf, colorable", + "wolf, grey", + "wolf, green", + "wolf, wise" + ) /datum/sprite_accessory/ears/bearhc name = "bear" icon_state = "bear" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "bear, colorable", + "bear, brown", + "bear, panda" + ) /datum/sprite_accessory/ears/smallbear name = "small bear" @@ -111,6 +144,11 @@ icon_state = "squirrel" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "squirrel, colorable", + "squirrel-orange", + "squirrel, red" + ) /datum/sprite_accessory/ears/kittyhc name = "kitty" @@ -118,12 +156,19 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "kittyinner" + backup_name = list( + "kitty, colorable" + ) /datum/sprite_accessory/ears/bunnyhc name = "bunny" icon_state = "bunny" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "bunny, colorable", + "bunny, white" + ) /datum/sprite_accessory/ears/antlers name = "antlers" @@ -162,6 +207,9 @@ icon_state = "cow-c" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "cow, horns, colorable" + ) /datum/sprite_accessory/ears/cow_nohorns name = "cow, no horns" @@ -181,6 +229,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "otie-inner" + backup_name = list( + "otie, colorable" + ) /datum/sprite_accessory/ears/donkey name = "donkey" @@ -188,6 +239,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "otie-inner" + backup_name = list( + "donkey, colorable" + ) /datum/sprite_accessory/ears/zears name = "jagged ears" @@ -227,36 +281,54 @@ icon_state = "floppy_bun" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "floopy bunny ears (colorable)" + ) /datum/sprite_accessory/ears/shark name = "shark ears" icon_state = "shark_ears" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "shark ears (Colorable)" + ) /datum/sprite_accessory/ears/sharkhigh name = "shark upper ears" icon_state = "shark_ears_upper" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "shark upper ears (Colorable)" + ) /datum/sprite_accessory/ears/sharklow name = "shark lower ears" icon_state = "shark_ears_lower" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "shark lower ears (Colorable)" + ) /datum/sprite_accessory/ears/sharkfin name = "shark fin" icon_state = "shark_fin" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "shark fin (Colorable)" + ) /datum/sprite_accessory/ears/sharkfinalt name = "shark fin alt" icon_state = "shark_fin_alt" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "shark fin alt style (Colorable)" + ) /datum/sprite_accessory/ears/sharkboth name = "shark ears and fin" @@ -264,6 +336,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "shark_fin" + backup_name = list( + "shark ears and fin (Colorable)" + ) /datum/sprite_accessory/ears/sharkbothalt name = "shark ears and fin alt" @@ -271,6 +346,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "shark_fin_alt" + backup_name = list( + "shark ears and fin alt style (Colorable)" + ) /datum/sprite_accessory/ears/sharkhighboth name = "shark upper ears and fin" @@ -278,6 +356,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "shark_fin" + backup_name = list( + "shark upper ears and fin (Colorable)" + ) /datum/sprite_accessory/ears/sharkhighbothalt name = "shark upper ears and fin alt" @@ -285,6 +366,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "shark_fin_alt" + backup_name = list( + "shark upper ears and fin alt style (Colorable)" + ) /datum/sprite_accessory/ears/sharklowboth name = "shark lower ears and fin" @@ -292,6 +376,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "shark_fin" + backup_name = list( + "shark lower ears and fin (Colorable)" + ) /datum/sprite_accessory/ears/sharklowbothalt name = "shark lower ears and fin alt" @@ -299,6 +386,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "shark_fin_alt" + backup_name = list( + "shark lower ears and fin alt style (Colorable)" + ) /datum/sprite_accessory/ears/wilddog name = "Wild Dog Ears" @@ -327,6 +417,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "kittyr" + backup_name = list( + "kitty right only, colorable" + ) /datum/sprite_accessory/ears/cobra_hood name = "Cobra hood (large)" @@ -385,6 +478,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "teshariinner" + backup_name = list( + "Teshari (colorable fluff)" + ) /datum/sprite_accessory/ears/tesharihigh name = "Teshari upper ears" @@ -392,6 +488,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "tesharihighinner" + backup_name = list( + "Teshari upper ears (colorable fluff)" + ) /datum/sprite_accessory/ears/tesharilow name = "Teshari lower ears" @@ -399,6 +498,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "tesharilowinner" + backup_name = list( + "Teshari lower ears (colorable fluff)" + ) /datum/sprite_accessory/ears/tesh_pattern_ear_male name = "Teshari male ear pattern" @@ -406,6 +508,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "teshari_male_pattern" + backup_name = list( + "Teshari male ear pattern (colorable)" + ) /datum/sprite_accessory/ears/tesh_pattern_ear_female name = "Teshari female ear pattern" @@ -413,6 +518,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "teshari_female_pattern" + backup_name = list( + "Teshari female ear pattern (colorable)" + ) /datum/sprite_accessory/ears/teshbeeantenna name = "Teshari bee antenna" @@ -462,24 +570,36 @@ icon_state = "oni-h1_c" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "oni horns, colorable" + ) /datum/sprite_accessory/ears/demon_horns1_c name = "demon horns" icon_state = "demon-horns1_c" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "demon horns, colorable" + ) /datum/sprite_accessory/ears/demon_horns2 name = "demon horns, outward color" icon_state = "demon-horns2" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "demon horns, colorable(outward)" + ) /datum/sprite_accessory/ears/dragon_horns name = "dragon horns" icon_state = "dragon-horns" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "dragon horns, colorable" + ) /datum/sprite_accessory/ears/elfs1 name = "pointed ears (tall)" @@ -534,6 +654,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "caprahorns" + backup_name = list( + "Caprine horns with pointy ears, colorable" + ) /datum/sprite_accessory/ears/elf_oni_colorable name = "oni horns with pointy ears" @@ -541,6 +664,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "oni-h1_c" + backup_name = list( + "oni horns with pointy ears, colorable" + ) /datum/sprite_accessory/ears/elf_demon_colorable name = "Demon horns with pointy ears" @@ -548,6 +674,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "demon-horns1_c" + backup_name = list( + "Demon horns with pointy ears, colorable" + ) /datum/sprite_accessory/ears/elf_demon_outwards_colorable name = "Demon horns with pointy ears, outwards" @@ -555,6 +684,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "demon-horns2" + backup_name = list( + "Demon horns with pointy ears, outwards, colourable" + ) /datum/sprite_accessory/ears/elf_dragon_colorable name = "Dragon horns with pointy ears" @@ -562,6 +694,15 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "dragon-horns" + backup_name = list( + "Dragon horns with pointy ears, colourable" + ) + +/datum/sprite_accessory/ears/forward_curled_demon_horns_bony + name = "Succubus horns, colourable" + icon_state = "succu-horns_b" + do_colouration = TRUE + color_blend_mode = ICON_MULTIPLY /datum/sprite_accessory/ears/forward_curled_demon_horns_bony_with_colorable_ears name = "Succubus horns with pointy ears, colourable" @@ -598,12 +739,6 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY -/datum/sprite_accessory/ears/forward_curled_demon_horns_bony - name = "Succubus horns, colourable" - icon_state = "succu-horns_b" - do_colouration = TRUE - color_blend_mode = ICON_MULTIPLY - /datum/sprite_accessory/ears/chorns_nubbydogs name = "Nubby Chorns" icon_state = "chorn_nubby" @@ -657,10 +792,3 @@ // Special snowflake ears go below here. - -/datum/sprite_accessory/ears/shadekin - name = "Shadekin Ears, colorable" - icon_state = "shadekin" - do_colouration = TRUE - color_blend_mode = ICON_MULTIPLY - species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) \ No newline at end of file diff --git a/code/modules/mob/new_player/sprite_accessories_ear_snowflake.dm b/code/modules/mob/new_player/sprite_accessories_ear_snowflake.dm index e89ebee56e8..b3cee8cb209 100644 --- a/code/modules/mob/new_player/sprite_accessories_ear_snowflake.dm +++ b/code/modules/mob/new_player/sprite_accessories_ear_snowflake.dm @@ -117,12 +117,25 @@ /* Ears of atypical size! */ /********************************************/ +/datum/sprite_accessory/ears/shadekin + name = "Shadekin Ears" + icon_state = "shadekin" + do_colouration = TRUE + color_blend_mode = ICON_MULTIPLY + species_allowed = list(SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW) + backup_name = list( + "Shadekin Ears, colorable" + ) + /datum/sprite_accessory/ears/shadekin/round - name = "Shadekin Ears Round, colorable" + name = "Shadekin Ears Round" icon = 'icons/mob/vore/ears_32x64.dmi' icon_state = "shadekin-round" do_colouration = TRUE extra_overlay = "shadekin-round-inner" + backup_name = list( + "Shadekin Ears Round, colorable" + ) /datum/sprite_accessory/ears/bnnuy name = "Bnnuy Ears" diff --git a/code/modules/mob/new_player/sprite_accessories_tail.dm b/code/modules/mob/new_player/sprite_accessories_tail.dm index 542daba086f..722c475db32 100644 --- a/code/modules/mob/new_player/sprite_accessories_tail.dm +++ b/code/modules/mob/new_player/sprite_accessories_tail.dm @@ -62,23 +62,41 @@ icon = null icon_state = null +/datum/sprite_accessory/tail/alien_slug + name = "Alien slug tail" + icon_state = "alien_slug" + do_colouration = TRUE + color_blend_mode = ICON_MULTIPLY + extra_overlay = "alien_slug_markings" + /datum/sprite_accessory/tail/squirrel name = "squirrel" icon_state = "squirrel" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "squirrel, colorable", + "squirel, orange", + "squirrel, red" + ) /datum/sprite_accessory/tail/kitty name = "kitty, downwards" icon_state = "kittydown" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "kitty, colorable, downwards" + ) /datum/sprite_accessory/tail/kittyup name = "kitty, upwards" icon_state = "kittyup" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "kitty, colorable, upwards" + ) /datum/sprite_accessory/tail/tiger_white name = "tiger" @@ -86,6 +104,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "tigerinnerwhite" + backup_name = list( + "tiger, colorable" + ) /datum/sprite_accessory/tail/stripey name = "stripey taj" @@ -93,29 +114,46 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "stripeytail_mark" + backup_name = list( + "stripey taj, colorable", + "stripey taj, brown" + ) /datum/sprite_accessory/tail/chameleon name = "Chameleon" icon_state = "chameleon" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "Chameleon, colorable" + ) /datum/sprite_accessory/tail/bunny name = "bunny" icon_state = "bunny" do_colouration = TRUE + backup_name = list( + "bunny, colorable" + ) /datum/sprite_accessory/tail/bear name = "bear" icon_state = "bear" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "bear, colorable", + "bear, brown" + ) /datum/sprite_accessory/tail/dragon name = "dragon" icon_state = "dragon" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "dragon, colorable" + ) /datum/sprite_accessory/tail/wolf name = "wolf" @@ -123,36 +161,59 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "wolfinner" + backup_name = list( + "wolf, colorable", + "wolf, grey", + "wolf, green", + "wolf, wise", + "wolf, black" + ) /datum/sprite_accessory/tail/mouse name = "mouse" icon_state = "mouse" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "mouse, colorable", + "mouse, pink" + ) /datum/sprite_accessory/tail/horse name = "horse" icon_state = "horse" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "horse tail, colorable" + ) /datum/sprite_accessory/tail/cow name = "cow tail" icon_state = "cow" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "cow tail, colorable" + ) /datum/sprite_accessory/tail/fantail name = "avian fantail" icon_state = "fantail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "avian fantail, colorable" + ) /datum/sprite_accessory/tail/wagtail name = "avian wagtail" icon_state = "wagtail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "avian wagtail, colorable" + ) /datum/sprite_accessory/tail/nevreandc name = "nevrean tail" @@ -160,6 +221,9 @@ extra_overlay = "nevreantail_dc_tail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "nevrean tail, dual-color" + ) /datum/sprite_accessory/tail/nevreanwagdc name = "nevrean wagtail" @@ -167,6 +231,9 @@ extra_overlay = "wagtail_dc_tail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "nevrean wagtail, dual-color" + ) /datum/sprite_accessory/tail/nevreanwagdc_alt name = "nevrean wagtail, marked" @@ -174,6 +241,9 @@ extra_overlay = "wagtail2_dc_mark" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "nevrean wagtail, marked, dual-color" + ) /datum/sprite_accessory/tail/crossfox name = "cross fox" @@ -187,6 +257,9 @@ name = "spade-tail" icon_state = "spadetail-black" do_colouration = TRUE + backup_name = list( + "spade-tail (colorable)" + ) /datum/sprite_accessory/tail/snag name = "xenomorph tail 1" @@ -223,6 +296,9 @@ do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "ringtail_mark" + backup_name = list( + "ringtail, colorable" + ) /datum/sprite_accessory/tail/ringtailwag name = "ringtail (vwag)" @@ -247,6 +323,9 @@ icon_state = "tailmaw" color_blend_mode = ICON_MULTIPLY do_colouration = TRUE + backup_name = list( + "tailmaw, colorable" + ) /datum/sprite_accessory/tail/curltail name = "curltail (vwag)" @@ -316,6 +395,9 @@ icon_state = "snaketail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "snake tail, colorable" + ) /datum/sprite_accessory/tail/bigsnaketail name = "large snake tail (vwag)" @@ -387,6 +469,13 @@ color_blend_mode = ICON_MULTIPLY extra_overlay = "deertail_mark" +/datum/sprite_accessory/tail/tesh_feathered + name = "Teshari tail" + icon_state = "teshtail_s" + do_colouration = TRUE + extra_overlay = "teshtail_feathers_s" + color_blend_mode = ICON_MULTIPLY + /datum/sprite_accessory/tail/teshari_fluffytail name = "Teshari alternative, colorable" icon_state = "teshari_fluffytail" @@ -416,7 +505,7 @@ extra_overlay = "teshpattern_fem_tail" /datum/sprite_accessory/tail/tesh_pattern_fem_alt - name = "Teshari male tail alt. pattern" + name = "Teshari female tail alt. pattern" icon_state = "teshtail_s" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY @@ -427,13 +516,14 @@ icon_state = "nightstalker" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "Nightstalker, colorable" + ) /datum/sprite_accessory/tail/zenghu_taj name = "Zeng-Hu Tajaran Synth tail" - desc = "" icon_state = "zenghu_taj" - /datum/sprite_accessory/tail/tail_smooth name = "Smooth Lizard Tail, colorable" icon_state = "tail_smooth" @@ -448,74 +538,105 @@ color_blend_mode = ICON_MULTIPLY /datum/sprite_accessory/tail/fox_tail - name = "Fox tail, colorable" + name = "Fox tail" icon_state = "fox_tail_s" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "Fox tail, colorable" + ) /datum/sprite_accessory/tail/fox_tail_plain - name = "Fox tail, colorable, plain" + name = "Fox tail, plain" icon_state = "fox_tail_plain_s" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "Fox tail, colorable, plain" + ) /datum/sprite_accessory/tail/foxtail - name = "Fox tail, colourable (vwag)" + name = "Fox tail (vwag)" icon_state = "foxtail" extra_overlay = "foxtail-tips" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY ani_state = "foxtail_w" extra_overlay_w = "foxtail-tips_w" + backup_name = list( + "Fox tail, colorable (vwag)" + ) /datum/sprite_accessory/tail/doublekitsune - name = "Kitsune 2 tails, colorable" + name = "Kitsune 2 tails" icon_state = "doublekitsune" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "Kitsune 2 tails, colorable" + ) + /datum/sprite_accessory/tail/doublekitsunealt - name = "Kitsune 2 tails, colorable, alt" + name = "Kitsune 2 tails, alt" icon_state = "doublekitsunealt" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "doublekitsunealt-tips" + backup_name = list( + "Kitsune 2 tails, colorable, alt" + ) /datum/sprite_accessory/tail/triplekitsune_colorable - name = "Kitsune 3 tails, colorable" + name = "Kitsune 3 tails" icon_state = "triplekitsune" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "triplekitsune_tips" + backup_name = list( + "Kitsune 3 tails, colorable" + ) /datum/sprite_accessory/tail/sevenkitsune_colorable - name = "Kitsune 7 tails, colorable" + name = "Kitsune 7 tails" icon_state = "sevenkitsune" extra_overlay = "sevenkitsune-tips" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "Kitsune 7 tails, colorable" + ) /datum/sprite_accessory/tail/ninekitsune_colorable - name = "Kitsune 9 tails, colorable" + name = "Kitsune 9 tails" icon_state = "ninekitsune" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "ninekitsune-tips" + backup_name = list( + "Kitsune 9 tails, colorable" + ) /datum/sprite_accessory/tail/hideableninetails - name = "Kitsune 9-in-1 tail, colourable (vwag)" - icon_state = "ninekitsune" - extra_overlay = "ninekitsune-tips" - do_colouration = TRUE - color_blend_mode = ICON_MULTIPLY - ani_state = "foxtail_w" - extra_overlay_w = "foxtail-tips_w" + name = "Kitsune 9-in-1 tail (vwag)" + icon_state = "ninekitsune" + extra_overlay = "ninekitsune-tips" + do_colouration = TRUE + color_blend_mode = ICON_MULTIPLY + ani_state = "foxtail_w" + extra_overlay_w = "foxtail-tips_w" + backup_name = list( + "Kitsune 9-in-1 tail, colourable (vwag)" + ) /datum/sprite_accessory/tail/shadekin_short - name = "Shadekin Short Tail, colorable" + name = "Shadekin Short Tail" icon_state = "shadekin-short" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "Shadekin Short Tail, colorable" + ) /datum/sprite_accessory/tail/wartacosushi_tail name = "Ward-Takahashi Tail" @@ -541,7 +662,6 @@ /datum/sprite_accessory/tail/Easterntail name = "Eastern Dragon (Animated)" - desc = "" icon_state = "Easterntail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY @@ -551,14 +671,12 @@ /datum/sprite_accessory/tail/synthtail_static name = "Synthetic lizard tail" - desc = "" icon_state = "synthtail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY /datum/sprite_accessory/tail/synthtail_vwag name = "Synthetic lizard tail (vwag)" - desc = "" icon_state = "synthtail" ani_state = "synthtail_w" do_colouration = TRUE @@ -566,7 +684,6 @@ /datum/sprite_accessory/tail/Plugtail name = "Synthetic plug tail" - desc = "" icon_state = "Plugtail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY @@ -575,7 +692,6 @@ /datum/sprite_accessory/tail/Segmentedtail name = "Segmented tail, animated" - desc = "" icon_state = "Segmentedtail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY @@ -585,7 +701,6 @@ /datum/sprite_accessory/tail/Segmentedlights name = "Segmented tail, animated synth" - desc = "" icon_state = "Segmentedtail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY @@ -595,58 +710,54 @@ /datum/sprite_accessory/tail/lizard_tail_smooth name = "Lizard Tail (Smooth)" - desc = "" icon_state = "lizard_tail_smooth" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY /datum/sprite_accessory/tail/lizard_tail_dark_tiger name = "Lizard Tail (Dark Tiger)" - desc = "" icon_state = "lizard_tail_dark_tiger" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY /datum/sprite_accessory/tail/lizard_tail_light_tiger name = "Lizard Tail (Light Tiger)" - desc = "" icon_state = "lizard_tail_light_tiger" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY /datum/sprite_accessory/tail/lizard_tail_spiked name = "Lizard Tail (Spiked)" - desc = "" icon_state = "lizard_tail_spiked" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY /datum/sprite_accessory/tail/xenotail_fullcolour - name = "xenomorph tail (fully colourable)" - desc = "" + name = "xenomorph tail" icon_state = "xenotail_fullcolour" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "xenomorph tail (fully colourable)" + ) /datum/sprite_accessory/tail/xenotailalt_fullcolour - name = "xenomorph tail alt. (fully colourable)" - desc = "" + name = "xenomorph tail alt" icon_state = "xenotailalt_fullcolour" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "xenomorph tail alt. (fully colourable)" + ) /datum/sprite_accessory/tail/peacocktail_red //this is ckey locked for now, but prettiebyrd wants these tails to be unlocked at a later date name = "Peacock tail (vwag)" - desc = "" - icon = 'icons/mob/vore/tails_vr.dmi' icon_state = "peacocktail_red" ani_state = "peacocktail_red_w" ckeys_allowed = list("prettiebyrd") /datum/sprite_accessory/tail/peacocktail //ditto name = "Peacock tail, colorable (vwag)" - desc = "" - icon = 'icons/mob/vore/tails_vr.dmi' icon_state = "peacocktail" ani_state = "peacocktail_w" do_colouration = TRUE @@ -655,7 +766,6 @@ /datum/sprite_accessory/tail/altevian name = "Altevian Tail" - icon = 'icons/mob/vore/tails_vr.dmi' icon_state = "altevian" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY @@ -690,66 +800,75 @@ /datum/sprite_accessory/tail/turkey //Would have been a really good thing for Thanksgiving probably but I'm not going to wait that long. name = "turkey" - desc = "" icon_state = "turkey" /datum/sprite_accessory/tail/shark_markings - name = "akula tail, colorable, tail and fins" - desc = "" + name = "akula tail, tail and fins" icon_state = "sharktail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "sharktail_markings" + backup_name = list( + "akula tail, colorable, tail and fins" + ) /datum/sprite_accessory/tail/shark_stripes - name = "akula tail, colorable, stripe" - desc = "" + name = "akula tail, stripe" icon_state = "sharktail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "sharktail_stripemarkings" + backup_name = list( + "akula tail, colorable, stripe" + ) /datum/sprite_accessory/tail/shark_tips - name = "akula tail, colorable, tips" - desc = "" + name = "akula tail, tips" icon_state = "sharktail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "sharktail_tipmarkings" + backup_name = list( + "akula tail, colorable, tips" + ) /datum/sprite_accessory/tail/narrow_tail - name = "feathered narrow tail, colorable" - desc = "" + name = "feathered narrow tail" icon_state = "narrowtail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "feathered narrow tail, colorable" + ) /datum/sprite_accessory/tail/narrow_tail2 name = "feathered narrow tail, 2 colors" - desc = "" icon_state = "narrowtail_2color" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "narrowtail_2color-1" - // Dino Tails /datum/sprite_accessory/tail/clubtail - name = "dino clubtail, colorable" - desc = "" + name = "dino clubtail" icon_state = "clubtail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "clubtail-1" + backup_name = list( + "dino clubtail, colorable" + ) /datum/sprite_accessory/tail/spiketail - name = "dino spiketail, colorable" - desc = "" + name = "dino spiketail" icon_state = "spiketail" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY extra_overlay = "spiketail-1" + backup_name = list( + "dino spiketail, colorable" + ) //For all species tails. Includes haircolored tails. /datum/sprite_accessory/tail/special @@ -859,48 +978,75 @@ icon_state = "tail_s" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "default zorren tail, colorable" + ) /datum/sprite_accessory/tail/special/foxhc name = "highlander zorren tail" icon_state = "foxtail_hc_s" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "highlander zorren tail, colorable" + ) /datum/sprite_accessory/tail/special/fennechc name = "flatland zorren tail" icon_state = "fentail_hc_s" do_colouration = TRUE color_blend_mode = ICON_MULTIPLY + backup_name = list( + "flatland zorren tail, colorable" + ) /datum/sprite_accessory/tail/special/armalishc name = "armalis tail" icon_state = "armalis_tail_humanoid_hc_s" do_colouration = TRUE + backup_name = list( + "armalis tail, colorable" + ) /datum/sprite_accessory/tail/special/xenodronehc name = "xenomorph drone tail" icon_state = "xenos_drone_tail_hc_s" do_colouration = TRUE + backup_name = list( + "xenomorph drone tail, colorable" + ) /datum/sprite_accessory/tail/special/xenosentinelhc name = "xenomorph sentinel tail" icon_state = "xenos_sentinel_tail_hc_s" do_colouration = TRUE + backup_name = list( + "xenomorph sentinel tail, colorable" + ) /datum/sprite_accessory/tail/special/xenohunterhc name = "xenomorph hunter tail" icon_state = "xenos_hunter_tail_hc_s" do_colouration = TRUE + backup_name = list( + "xenomorph hunter tail, colorable" + ) /datum/sprite_accessory/tail/special/xenoqueenhc name = "xenomorph queen tail" icon_state = "xenos_queen_tail_hc_s" do_colouration = TRUE + backup_name = list( + "xenomorph queen tail, colorable" + ) /datum/sprite_accessory/tail/special/monkeyhc name = "monkey tail" icon_state = "chimptail_hc_s" do_colouration = TRUE + backup_name = list( + "monkey tail, colorable" + ) /datum/sprite_accessory/tail/special/tesharitailhc name = "teshari tail, colorable" @@ -1244,16 +1390,19 @@ /*** Leg replacements but tails ***/ /datum/sprite_accessory/tail/satyr - name = "goat legs, colorable" + name = "goat legs" icon_state = "satyr" color_blend_mode = ICON_MULTIPLY do_colouration = TRUE hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case. clip_mask_icon = 'icons/mob/human_races/sprite_accessories/taurs.dmi' clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms. + backup_name = list( + "goat legs, colorable" + ) /datum/sprite_accessory/tail/satyrtail - name = "goat legs with tail, colorable" + name = "goat legs with tail" icon_state = "satyr" color_blend_mode = ICON_MULTIPLY do_colouration = TRUE @@ -1261,9 +1410,12 @@ clip_mask_icon = 'icons/mob/vore/taurs_vr.dmi' clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms. extra_overlay = "horse" //I can't believe this works. + backup_name = list( + "goat legs with tail, colorable" + ) /datum/sprite_accessory/tail/synthetic_stilt_legs - name = "synthetic stilt-legs, colorable" + name = "synthetic stilt-legs" icon_state = "synth_stilts" color_blend_mode = ICON_MULTIPLY do_colouration = TRUE @@ -1271,6 +1423,9 @@ hide_body_parts = list(BP_L_LEG, BP_L_FOOT, BP_R_LEG, BP_R_FOOT) //Exclude pelvis just in case. clip_mask_icon = 'icons/mob/vore/taurs_vr.dmi' clip_mask_state = "taur_clip_mask_def" //Used to clip off the lower part of suits & uniforms. + backup_name = list( + "synthetic stilt-legs, colorable" + ) //LONG TAILS ARE NOT TAUR BUTTS >:O /datum/sprite_accessory/tail/longtail @@ -1303,4 +1458,4 @@ /datum/sprite_accessory/tail/longtail/zaprat/heart name = "heart-bolt-shaped tail, dual color" icon_state = "zaprat_heart_s" - extra_overlay = "zaprat_heart_markings" \ No newline at end of file + extra_overlay = "zaprat_heart_markings" diff --git a/code/modules/mob/say_vr.dm b/code/modules/mob/say_vr.dm index 76ef81b0aa6..308d74cb2ec 100644 --- a/code/modules/mob/say_vr.dm +++ b/code/modules/mob/say_vr.dm @@ -192,8 +192,8 @@ var/mob/living/itsme = src if(itsme.vore_organs.len) for(var/obj/belly/ourbelly in itsme.vore_organs) - for(var/anything in ourbelly.contents) - vis_objs |= anything + for(var/obj/O in ourbelly.contents) + vis_objs |= O for(var/obj/O in vis_objs) //Let's see if there is anything that might have mobs in it around! if(istype(O,/obj/effect/overmap/visitable/ship)) //Let's look for ships! diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index 013c866792b..d10a57e2b30 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -294,7 +294,7 @@ to_chat(owner,"[thing] slides into your [lowertext(name)].") //Sound w/ antispam flag setting - if(vore_sound && !recent_sound && !istype(thing, /mob/observer)) //RSEdit: Ports VOREStation PR15918 || does not play vorebelly insertion sound upon ghost entering + if(vore_sound && !recent_sound && !istype(thing, /mob/observer)) //RSEdit: Ports VOREStation PR15918 || does not play vorebelly insertion sound upon ghost entering var/soundfile if(!fancy_vore) soundfile = classic_vore_sounds[vore_sound] @@ -449,7 +449,7 @@ // Release all contents of this belly into the owning mob's location. // If that location is another mob, contents are transferred into whichever of its bellies the owning mob is in. // Returns the number of mobs so released. -/obj/belly/proc/release_all_contents(include_absorbed = FALSE, silent = FALSE) +/obj/belly/proc/release_all_contents(include_absorbed = FALSE, silent = FALSE, include_bones = FALSE) //RS EDIT //Don't bother if we don't have contents if(!contents.len) return FALSE @@ -463,6 +463,8 @@ var/mob/living/L = AM if(L.absorbed && !include_absorbed) continue + if(istype(AM, /obj/item/weapon/digestion_remains) && !include_bones) // RS ADD + continue //RS ADD count += release_specific_contents(AM, silent = TRUE) //Clean up our own business @@ -563,7 +565,7 @@ privacy_volume = 25 //Print notifications/sound if necessary - if(!silent) + if(!silent && !isobserver(M)) //RSEdit: Ports VOREStation PR15918 | Don't display release message for ghosts owner.visible_message("[owner] [release_verb] [M] from their [lowertext(name)]!",range = privacy_range) var/soundfile if(!fancy_vore) @@ -974,7 +976,7 @@ if(!digested) items_preserved |= item else - owner.adjust_nutrition((nutrition_percent / 100) * 5 * digested) + owner.adjust_nutrition((nutrition_percent / 100) * 15 * digested) if(isrobot(owner)) var/mob/living/silicon/robot/R = owner R.cell.charge += ((nutrition_percent / 100) * 50 * digested) @@ -1219,7 +1221,7 @@ if(!(content in src) || !istype(target)) return content.forceMove(target) - if(ismob(content)) + if(ismob(content) && !isobserver(content)) //RSEdit: Ports VOREStation PR15918 | Fixes bug where camera is not set to follow the ghost var/mob/ourmob = content ourmob.reset_view(owner) if(isitem(content)) diff --git a/code/modules/vore/eating/bellymodes_datum_vr.dm b/code/modules/vore/eating/bellymodes_datum_vr.dm index e267f5ce53f..62a5b15e568 100644 --- a/code/modules/vore/eating/bellymodes_datum_vr.dm +++ b/code/modules/vore/eating/bellymodes_datum_vr.dm @@ -77,9 +77,9 @@ GLOBAL_LIST_INIT(digest_modes, list()) var/mob/living/silicon/robot/R = B.owner R.cell.charge += 25 * damage_gain if(offset) // If any different than default weight, multiply the % of offset. - B.owner.adjust_nutrition(offset*(4.5 * (damage_gain) / difference)*L.get_digestion_nutrition_modifier()*B.owner.get_digestion_efficiency_modifier()) //4.5 nutrition points per health point. Normal same size 100+100 health prey with average weight would give 900 points if the digestion was instant. With all the size/weight offset taxes plus over time oxyloss+hunger taxes deducted with non-instant digestion, this should be enough to not leave the pred starved. + B.owner.adjust_nutrition(offset*(14 * (damage_gain) / difference)*L.get_digestion_nutrition_modifier()*B.owner.get_digestion_efficiency_modifier()) //4.5 nutrition points per health point. Normal same size 100+100 health prey with average weight would give 900 points if the digestion was instant. With all the size/weight offset taxes plus over time oxyloss+hunger taxes deducted with non-instant digestion, this should be enough to not leave the pred starved. else - B.owner.adjust_nutrition((4.5 * (damage_gain) / difference)*L.get_digestion_nutrition_modifier()*B.owner.get_digestion_efficiency_modifier()) + B.owner.adjust_nutrition((14 * (damage_gain) / difference)*L.get_digestion_nutrition_modifier()*B.owner.get_digestion_efficiency_modifier()) if(L.stat != oldstat) return list("to_update" = TRUE) @@ -156,24 +156,24 @@ GLOBAL_LIST_INIT(digest_modes, list()) var/obj/item/organ/external/O = E if(O.brute_dam > 0 || O.burn_dam > 0) //Making sure healing continues until fixed. O.heal_damage(0.5, 0.5, 0, 1) // Less effective healing as able to fix broken limbs - B.owner.adjust_nutrition(-5) // More costly for the pred, since metals and stuff + B.owner.adjust_nutrition(-10) // More costly for the pred, since metals and stuff if(L.health < L.maxHealth) L.adjustToxLoss(-2) L.adjustOxyLoss(-2) L.adjustCloneLoss(-1) - B.owner.adjust_nutrition(-1) // Normal cost per old functionality + B.owner.adjust_nutrition(-2) // Normal cost per old functionality if(B.owner.nutrition > 90 && (L.health < L.maxHealth) && !H.isSynthetic()) L.adjustBruteLoss(-2.5) L.adjustFireLoss(-2.5) L.adjustToxLoss(-5) L.adjustOxyLoss(-5) L.adjustCloneLoss(-1.25) - B.owner.adjust_nutrition(-2) + B.owner.adjust_nutrition(-4) if(L.nutrition <= 400) - L.adjust_nutrition(1) + L.adjust_nutrition(2) else if(B.owner.nutrition > 90 && (L.nutrition <= 400)) - B.owner.adjust_nutrition(-1) - L.adjust_nutrition(1) + B.owner.adjust_nutrition(-2) + L.adjust_nutrition(2) if(L.stat != oldstat) return list("to_update" = TRUE) diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index ca8921dd873..6bc644a0422 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -258,7 +258,7 @@ /obj/belly/proc/handle_digestion_death(mob/living/M) var/digest_alert_owner = pick(digest_messages_owner) var/digest_alert_prey = pick(digest_messages_prey) - var/compensation = M.maxHealth / 5 //Dead body bonus. + var/compensation = M.maxHealth / 1.5 //Dead body bonus. if(ishuman(M)) compensation += M.getOxyLoss() //How much of the prey's damage was caused by passive crit oxyloss to compensate the lost nutrition. diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index b6602ab3cc8..e2728eca92f 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -317,7 +317,7 @@ // /mob/living/proc/release_vore_contents(var/include_absorbed = TRUE, var/silent = FALSE) for(var/obj/belly/B as anything in vore_organs) - B.release_all_contents(include_absorbed, silent) + B.release_all_contents(include_absorbed, silent, TRUE) //RS EDIT // // Returns examine messages for bellies diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index aceb8b773b0..87a61eba92c 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -727,9 +727,8 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", /datum/vore_look/proc/pick_from_outside(mob/user, params) var/intent - //Handle the [All] choice. Ugh inelegant. Someone make this pretty. if(params["pickall"]) - intent = tgui_alert(user, "Eject all, Move all?","Query",list("Eject all","Cancel","Move all")) + intent = tgui_alert(user, "You are affecting all [lowertext(host.vore_selected)] contents with this choice.","[uppertext(host.vore_selected)] contents management",list("Eject all","Move all","Advance all","Cancel")) switch(intent) if("Cancel") return TRUE @@ -738,8 +737,19 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", if(host.stat) to_chat(user,"You can't do that in your state!") return TRUE + //RS ADD START + var/bones_detected = FALSE + var/bone_time = FALSE + for(var/thing in host.vore_selected.contents) + if(istype(thing, /obj/item/weapon/digestion_remains)) + bones_detected = TRUE + break + if(bones_detected) + if(tgui_alert(user, "Do you want to include the remains that are inside your [lowertext(host.vore_selected)]?","",list("Yes","No")) == "Yes") + bone_time = TRUE + //RS ADD END - host.vore_selected.release_all_contents() + host.vore_selected.release_all_contents(include_bones = bone_time) //RS EDIT return TRUE if("Move all") @@ -751,16 +761,39 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", if(!choice) return FALSE + for(var/atom/movable/target in host.vore_selected) + to_chat(target,"You're squished from [host]'s host.vore_selected to their [lowertext(choice.name)]!") + host.vore_selected.transfer_contents(target, choice, 1) + return TRUE + //RS ADD START + if("Advance all") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + var/list/choices = list() + var/obj/belly/choice + for(var/obj/belly/b in host.vore_organs) + if(b.name == host.vore_selected.transferlocation || b.name == host.vore_selected.transferlocation_secondary) + choices += b + if(!choices.len) + to_chat(user,"You haven't configured any transfer locations for your [lowertext(host.vore_selected)]. Please configure at least one transfer location in order to advance your [lowertext(host.vore_selected)]'s contents.") + else + choice = tgui_input_list(user, "Advance your [lowertext(host.vore_selected)]'s contents to which belly?","Select Belly", choices) + + if(!choice) + return TRUE + for(var/atom/movable/target in host.vore_selected) to_chat(target,"You're squished from [host]'s [lowertext(host.vore_selected)] to their [lowertext(choice.name)]!") host.vore_selected.transfer_contents(target, choice, 1) return TRUE + //RS ADD END return var/atom/movable/target = locate(params["pick"]) if(!(target in host.vore_selected)) return TRUE // Not in our X anymore, update UI - var/list/available_options = list("Examine", "Eject", "Move", "Transfer") + var/list/available_options = list("Examine", "Eject", "Move", "Advance", "Transfer") if(ishuman(target)) available_options += "Transform" if(isliving(target)) @@ -913,6 +946,26 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", b.absorb_living(ourtarget) if("Cancel") return + //RS ADD START + if("Advance") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + var/list/choices = list() + var/obj/belly/choice + for(var/obj/belly/b in host.vore_organs) + if(b.name == host.vore_selected.transferlocation || b.name == host.vore_selected.transferlocation_secondary) + choices += b + if(!choices.len) + to_chat(user,"You haven't configured any transfer locations for your [lowertext(host.vore_selected)]. Please configure at least one transfer location in order to advance your [lowertext(host.vore_selected)]'s contents.") + else + choice = tgui_input_list(user, "Advance your [lowertext(host.vore_selected)]'s contents to which belly?","Select Belly", choices) + + if(!choice || !(target in host.vore_selected)) + return TRUE + to_chat(target,"You're squished from [host]'s [lowertext(host.vore_selected.name)] to their [lowertext(choice.name)]!") + host.vore_selected.transfer_contents(target, choice) + //RS ADD END /datum/vore_look/proc/set_attr(mob/user, params) if(!host.vore_selected) diff --git a/icons/mob/species/teshari/synth_facemask.dmi b/icons/mob/species/teshari/synth_facemask.dmi new file mode 100644 index 00000000000..d85b0ff129e Binary files /dev/null and b/icons/mob/species/teshari/synth_facemask.dmi differ diff --git a/maps/groundbase/gb-mining.dmm b/maps/groundbase/gb-mining.dmm index f06ca4762a6..316a25e7bc1 100644 --- a/maps/groundbase/gb-mining.dmm +++ b/maps/groundbase/gb-mining.dmm @@ -2267,7 +2267,7 @@ I I I I -I +Z Z Z Z @@ -2409,7 +2409,7 @@ I I I I -I +Z Z Z Z @@ -2550,8 +2550,8 @@ I I I I -I -I +Z +Z I Z Z @@ -2692,8 +2692,8 @@ I I I I -I -I +Z +Z I I I @@ -2833,8 +2833,8 @@ I I I I -I -I +Z +Z I I I @@ -2975,8 +2975,8 @@ I I I I -I -I +Z +Z I I I @@ -3117,8 +3117,8 @@ I I I I -I -I +Z +Z I I I @@ -3259,9 +3259,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -3402,10 +3402,10 @@ I I I I -I -I -I -I +Z +Z +Z +Z I I I @@ -3545,12 +3545,12 @@ I I I I -I -I -I -I -I -I +Z +Z +Z +Z +Z +Z I I I @@ -3689,10 +3689,10 @@ I I I I -I -I -I -I +Z +Z +Z +Z I I I @@ -3833,9 +3833,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -3977,8 +3977,8 @@ I I I I -I -I +Z +Z I Z Z @@ -4120,7 +4120,7 @@ I I I I -I +Z I Z Z @@ -4262,7 +4262,7 @@ I I I I -I +Z Z Z Z @@ -4404,7 +4404,7 @@ I I I I -I +Z Z Z I @@ -4546,7 +4546,7 @@ I I I I -I +Z Z Z I @@ -5480,11 +5480,11 @@ I I I I -Z -Z -b -b -b +I +I +I +I +I I I I @@ -5621,12 +5621,12 @@ I I I I -Z -Z -Z -x -Z -b +I +I +I +I +I +I I I I @@ -5763,12 +5763,12 @@ I I I I -Z -Z -Z -x -Z -b +I +I +I +I +I +I I I I @@ -5906,11 +5906,11 @@ I I I I -Z -Z -b -b -b +I +I +I +I +I I I I @@ -7291,7 +7291,7 @@ Z Z Z Z -I +Z I I I @@ -7432,8 +7432,8 @@ I Z Z Z -I -I +Z +Z I I I @@ -7574,9 +7574,9 @@ I Z Z I -I -I -I +Z +Z +Z I I I @@ -7636,8 +7636,8 @@ I Z Z Z -I -I +Z +Z I I I @@ -7717,6 +7717,8 @@ Z Z Z I +Z +Z I I I @@ -7774,12 +7776,10 @@ I I I I -I -I -I -I -I -I +Z +Z +Z +Z I I Z @@ -7859,6 +7859,8 @@ Z I I I +Z +Z I I I @@ -7917,11 +7919,9 @@ I I I I -I -I -I -I -I +Z +Z +Z I I Z @@ -8001,6 +8001,9 @@ Z Z I I +Z +Z +Z I I I @@ -8059,11 +8062,8 @@ I I I I -I -I -I -I -I +Z +Z Z Z Z @@ -8143,12 +8143,9 @@ Z I I I -I -I -I -I -I -I +Z +Z +Z I I I @@ -8215,6 +8212,9 @@ Z Z Z Z +Z +Z +Z I I Z @@ -8266,8 +8266,8 @@ I I I I -I -I +Z +Z I I I @@ -8286,8 +8286,8 @@ I I I I -I -I +Z +Z I I I @@ -8406,12 +8406,12 @@ I I I I -I -I -I -I -I -I +Z +Z +Z +Z +Z +Z I I I @@ -8428,8 +8428,8 @@ I I I I -I -I +Z +Z I I I @@ -8548,13 +8548,13 @@ I I I I -I -I -I -I -I -I -I +Z +Z +Z +Z +Z +Z +Z I I I @@ -8570,8 +8570,8 @@ I I I I -I -I +Z +Z I I I @@ -8689,15 +8689,15 @@ I I I I -I -I -I -I -I -I -I -I -I +Z +Z +Z +Z +Z +Z +Z +Z +Z I I I @@ -8712,8 +8712,8 @@ I I I I -I -I +Z +Z I I I @@ -8831,9 +8831,15 @@ I I I I +Z +Z +Z I I I +Z +Z +Z I I I @@ -8847,14 +8853,8 @@ I I I I -I -I -I -I -I -I -I -I +Z +Z I I I @@ -8972,12 +8972,17 @@ I I I I +Z +Z +Z I I I I I I +Z +Z I I I @@ -8990,13 +8995,8 @@ I I I I -I -I -I -I -I -I -I +Z +Z I I I @@ -9114,6 +9114,8 @@ I I I I +Z +Z I I I @@ -9121,6 +9123,9 @@ I I I I +Z +Z +Z I I I @@ -9131,14 +9136,9 @@ I I I I -I -I -I -I -I -I -I -I +Z +Z +Z I I I @@ -9256,6 +9256,8 @@ I I I I +Z +Z I I I @@ -9263,6 +9265,10 @@ I I I I +Z +Z +Z +Z I I I @@ -9270,17 +9276,11 @@ I I I I -I -I -I -I -I -I -I -I -I -I -I +Z +Z +Z +Z +Z I I I @@ -9398,6 +9398,8 @@ I I I I +Z +Z I I I @@ -9406,23 +9408,21 @@ I I I I +Z +Z +Z +Z +Z I I I I -I -I -I -I -I -I -I -I -I -I -I -I -I +Z +Z +Z +Z +Z +Z I I I @@ -9540,6 +9540,8 @@ I I I I +Z +Z I I I @@ -9549,21 +9551,19 @@ I I I I -I -I -I -I -I -I -I -I -I -I -I -I -I -I -I +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z I I I @@ -9682,6 +9682,8 @@ I I I I +Z +Z I I I @@ -9693,18 +9695,16 @@ I I I I -I -I -I -I -I -I -I -I -I -I -I -I +Z +Z +Z +Z +Z +Z +Z +Z +Z +Z I I I @@ -9824,6 +9824,8 @@ I I I I +Z +Z I I I @@ -9837,13 +9839,11 @@ I I I I -I -I -I -I -I -I -I +Z +Z +Z +Z +Z I I I @@ -9967,8 +9967,8 @@ I I I I -I -I +Z +Z I I I @@ -10109,8 +10109,8 @@ I I I I -I -I +Z +Z I I I @@ -10251,9 +10251,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -10393,9 +10393,9 @@ I I I I -I -I -I +Z +Z +Z I Z Z @@ -10464,7 +10464,7 @@ Z Z Z Z -I +Z I I I @@ -10536,8 +10536,8 @@ I I I I -I -I +Z +Z Z Z Z @@ -10602,10 +10602,10 @@ Z Z Z Z -I -I -I -I +Z +Z +Z +Z I I I @@ -10679,7 +10679,7 @@ I I I I -I +Z Z Z Z @@ -10743,9 +10743,9 @@ Z Z I I -I -I -I +Z +Z +Z I I I @@ -10822,7 +10822,7 @@ I I I I -I +Z Z Z b @@ -10885,8 +10885,8 @@ Z I I I -I -I +Z +Z I I I @@ -11026,8 +11026,8 @@ I I I I -I -I +Z +Z I I I @@ -11167,9 +11167,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -11309,8 +11309,8 @@ I I I I -I -I +Z +Z I I I @@ -11450,8 +11450,8 @@ I I I I -I -I +Z +Z I I I @@ -11592,8 +11592,8 @@ I I I I -I -I +Z +Z I I I @@ -11734,8 +11734,8 @@ I I I I -I -I +Z +Z I I I @@ -11876,8 +11876,8 @@ I I I I -I -I +Z +Z I I I @@ -12018,8 +12018,8 @@ I I I I -I -I +Z +Z I I I @@ -12160,9 +12160,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -12302,9 +12302,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -12445,8 +12445,8 @@ I I I I -I -I +Z +Z I I I @@ -12587,8 +12587,8 @@ I I I I -I -I +Z +Z I I I @@ -12729,8 +12729,8 @@ I I I I -I -I +Z +Z I I I @@ -12872,8 +12872,8 @@ I I I I -I -I +Z +Z I I I @@ -13014,8 +13014,8 @@ I I I I -I -I +Z +Z I I I @@ -13157,8 +13157,8 @@ I I I I -I -I +Z +Z I I I @@ -13299,8 +13299,8 @@ I I I I -I -I +Z +Z I I I @@ -13441,9 +13441,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -13584,9 +13584,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -13727,10 +13727,10 @@ I I I I -I -I -I -I +Z +Z +Z +Z I I Z @@ -13871,9 +13871,9 @@ I I I I -I Z -I +Z +Z Z Z Z @@ -14015,7 +14015,7 @@ I Z Z Z -I +Z Z Z Z @@ -14858,7 +14858,7 @@ I I Z Z -I +Z I I I @@ -15284,7 +15284,7 @@ I I I Z -I +Z I I I @@ -15569,7 +15569,7 @@ I I Z Z -I +Z I I I @@ -15711,7 +15711,7 @@ I I Z Z -I +Z Z Z I @@ -16564,7 +16564,7 @@ I I I I -I +Z Z Z Z @@ -16707,10 +16707,10 @@ I I I I -I Z Z -I +Z +Z I I I @@ -16850,9 +16850,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -16992,8 +16992,8 @@ I I I I -I -I +Z +Z I I I @@ -17134,9 +17134,9 @@ I I I I -I -I -I +Z +Z +Z I I I @@ -17276,6 +17276,9 @@ I I I I +Z +Z +Z I I I @@ -17283,12 +17286,9 @@ I I I I -I -I -I -I -I -I +Z +Z +Z I I I @@ -17417,14 +17417,10 @@ I I I I -I -I -I -I -I -I -I -I +Z +Z +Z +Z I I I @@ -17433,6 +17429,10 @@ I I Z Z +Z +Z +Z +Z b b b @@ -17559,14 +17559,10 @@ I I I I -I -I -I -I -I -I -I -I +Z +Z +Z +Z I I I @@ -17575,6 +17571,10 @@ I Z Z Z +Z +Z +Z +Z x Z b @@ -17701,19 +17701,19 @@ I I I I +Z +Z +Z I I I I I I -I -I -I -I -I -I -I +Z +Z +Z +Z Z Z Z @@ -17842,18 +17842,18 @@ I I I I +Z +Z +Z +Z I I I I I -I -I -I -I -I -I -I +Z +Z +Z I I I @@ -17984,17 +17984,17 @@ I I I I +Z +Z +Z I I I I I I -I -I -I -I -I +Z +Z I I I @@ -18126,17 +18126,17 @@ I I I I +Z +Z +Z I I I I I I -I -I -I -I -I +Z +Z I I I @@ -18268,17 +18268,17 @@ I I I I +Z +Z +Z I I I I I -I -I -I -I -I -I +Z +Z +Z I I I @@ -18410,16 +18410,16 @@ I I I I +Z +Z +Z +Z I I I I -I -I -I -I -I -I +Z +Z I I I @@ -18553,15 +18553,15 @@ I I I I +Z +Z +Z +Z I I -I -I -I -I -I -I -I +Z +Z +Z I I I @@ -18696,13 +18696,13 @@ I I I I -I -I -I -I -I -I -I +Z +Z +Z +Z +Z +Z +Z I I I diff --git a/maps/groundbase/rp-z2.dmm b/maps/groundbase/rp-z2.dmm index 4b48af70609..fe94abfd07f 100644 --- a/maps/groundbase/rp-z2.dmm +++ b/maps/groundbase/rp-z2.dmm @@ -9397,7 +9397,7 @@ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/landmark/start/qm, +/obj/structure/filingcabinet/filingcabinet, /turf/simulated/floor/tiled, /area/groundbase/cargo/office) "Ja" = ( @@ -11270,7 +11270,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/machinery/smartfridge/sheets/persistent_lossy, +/obj/machinery/smartfridge/sheets/persistent, /turf/simulated/floor/tiled, /area/groundbase/cargo/office) "Pr" = ( @@ -11949,6 +11949,7 @@ /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 6 }, +/obj/effect/landmark/start/qm, /turf/simulated/floor/tiled, /area/groundbase/cargo/office) "Ry" = ( @@ -12240,8 +12241,9 @@ /turf/simulated/floor/tiled/dark, /area/groundbase/civilian/chapel) "Sy" = ( -/obj/structure/filingcabinet/filingcabinet, -/turf/simulated/floor/tiled, +/obj/machinery/door/firedoor/glass, +/obj/machinery/smartfridge/sheets/persistent, +/turf/simulated/floor/plating, /area/groundbase/cargo/office) "Sz" = ( /obj/structure/grille, @@ -28831,8 +28833,8 @@ HK hF ER kj +WZ Sy -sX Sw pT ep diff --git a/vorestation.dme b/vorestation.dme index 1fc828c8c50..d8bc40e0c2e 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2042,6 +2042,7 @@ #include "code\modules\clothing\masks\miscellaneous.dm" #include "code\modules\clothing\masks\miscellaneous_vr.dm" #include "code\modules\clothing\masks\shiny_vr.dm" +#include "code\modules\clothing\masks\tesh_synth_facemask.dm" #include "code\modules\clothing\masks\voice.dm" #include "code\modules\clothing\rings\material.dm" #include "code\modules\clothing\rings\rings.dm" @@ -4287,6 +4288,7 @@ #include "maps\expedition_vr\beach\submaps\mountains.dm" #include "maps\expedition_vr\beach\submaps\mountains_areas.dm" #include "maps\gateway_archive_vr\blackmarketpackers.dm" +#include "maps\groundbase\groundbase.dm" #include "maps\redgate\fantasy_items.dm" #include "maps\redgate\code\snowglobe_rs.dm" #include "maps\southern_cross\items\clothing\sc_accessory.dm" @@ -4295,7 +4297,6 @@ #include "maps\southern_cross\loadout\loadout_suit.dm" #include "maps\southern_cross\loadout\loadout_uniform.dm" #include "maps\southern_cross\loadout\loadout_vr.dm" -#include "maps\stellar_delight\stellar_delight.dm" #include "maps\submaps\_helpers.dm" #include "maps\submaps\_readme.dm" #include "maps\submaps\admin_use_vr\event_autonomous_drone.dm"