diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index d9a5f7a847..df7a90632c 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -447,3 +447,7 @@ #define DEATHGASP_NO_MESSAGE "no message" #define RESIST_COOLDOWN 2 SECONDS + +#define VISIBLE_GENDER_FORCE_PLURAL 1 // Used by get_visible_gender to return PLURAL +#define VISIBLE_GENDER_FORCE_IDENTIFYING 2 // Used by get_visible_gender to return the mob's identifying gender +#define VISIBLE_GENDER_FORCE_BIOLOGICAL 3 // Used by get_visible_gender to return the mob's biological gender diff --git a/code/datums/supplypacks/materials.dm b/code/datums/supplypacks/materials.dm index 5e181d8af8..45951c516d 100644 --- a/code/datums/supplypacks/materials.dm +++ b/code/datums/supplypacks/materials.dm @@ -66,17 +66,18 @@ /obj/fiftyspawner/tealcarpet ) -/datum/supply_pack/materials/arcade_carpet - name = "Retro carpets" +/datum/supply_pack/materials/retrocarpet + name = "Retro carpet" containertype = /obj/structure/closet/crate/grayson - containername = "Retro carpets crate" + containername = "Retro carpet crate" cost = 15 contains = list( - /obj/fiftyspawner/decocarpet, - /obj/fiftyspawner/retrocarpet + /obj/fiftyspawner/geocarpet, + /obj/fiftyspawner/retrocarpet, + /obj/fiftyspawner/retrocarpet_red ) -/datum/supply_pack/misc/linoleum +/datum/supply_pack/materials/linoleum name = "Linoleum" containertype = /obj/structure/closet/crate/grayson containername = "Linoleum crate" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 3df1820fa9..b0703f63a4 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -27,7 +27,7 @@ // Overlays ///Our local copy of (non-priority) overlays without byond magic. Use procs in SSoverlays to manipulate - var/list/our_overlays + var/list/our_overlays ///Overlays that should remain on top and not normally removed when using cut_overlay functions, like c4. var/list/priority_overlays ///vis overlays managed by SSvis_overlays to automaticaly turn them like other overlays @@ -35,7 +35,7 @@ ///Our local copy of filter data so we can add/remove it var/list/filter_data - + //Detective Work, used for the duplicate data points kept in the scanners var/list/original_atom // Track if we are already had initialize() called to prevent double-initialization. @@ -681,7 +681,7 @@ if(!isnull(.)) datum_flags |= DF_VAR_EDITED return - + . = ..() /atom/proc/atom_say(message) @@ -716,7 +716,7 @@ . = ..() SEND_SIGNAL(src, COMSIG_ATOM_EXITED, AM, new_loc) -/atom/proc/get_visible_gender() +/atom/proc/get_visible_gender(mob/user, force) return gender /atom/proc/interact(mob/user) diff --git a/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm b/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm index 3332adbe0c..d827289e32 100644 --- a/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm +++ b/code/game/objects/items/stacks/tiles/fifty_spawner_tiles.dm @@ -20,14 +20,18 @@ name = "stack of teal carpet" type_to_spawn = /obj/item/stack/tile/carpet/teal -/obj/fiftyspawner/decocarpet - name = "stack of deco carpet" - type_to_spawn = /obj/item/stack/tile/carpet/deco +/obj/fiftyspawner/geocarpet + name = "stack of geometric carpet" + type_to_spawn = /obj/item/stack/tile/carpet/geo /obj/fiftyspawner/retrocarpet - name = "stack of retro carpet" + name = "stack of blue retro carpet" type_to_spawn = /obj/item/stack/tile/carpet/retro +/obj/fiftyspawner/retrocarpet_red + name = "stack of red retro carpet" + type_to_spawn = /obj/item/stack/tile/carpet/retro_red + /obj/fiftyspawner/floor name = "stack of floor tiles" type_to_spawn = /obj/item/stack/tile/floor diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 759d57414e..c6289c3147 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -65,6 +65,26 @@ desc = "An easy to fit wooden floor tile. It's blue!" icon_state = "tile-sifwood" +/obj/item/stack/tile/wood/alt + name = "wood floor tile" + singular_name = "wood floor tile" + icon_state = "tile-wood_tile" + +/obj/item/stack/tile/wood/parquet + name = "parquet wood floor tile" + singular_name = "parquet wood floor tile" + icon_state = "tile-wood_parquet" + +/obj/item/stack/tile/wood/panel + name = "large wood floor tile" + singular_name = "large wood floor tile" + icon_state = "tile-wood_large" + +/obj/item/stack/tile/wood/tile + name = "tiled wood floor tile" + singular_name = "tiled wood floor tile" + icon_state = "tile-wood_tile" + /obj/item/stack/tile/wood/cyborg name = "wood floor tile synthesizer" desc = "A device that makes wood floor tiles." @@ -73,6 +93,8 @@ stacktype = /obj/item/stack/tile/wood build_type = /obj/item/stack/tile/wood + + /* * Carpets */ @@ -97,6 +119,19 @@ icon_state = "tile-tealcarpet" no_variants = FALSE +/obj/item/stack/tile/carpet/geo + icon_state = "tile-carpet-deco" + desc = "A piece of carpet with a gnarly geometric design. It is the same size as a normal floor tile!" + +/obj/item/stack/tile/carpet/retro + icon_state = "tile-carpet-retro" + desc = "A piece of carpet with totally wicked blue space patterns. It is the same size as a normal floor tile!" + +/obj/item/stack/tile/carpet/retro_red + icon_state = "tile-carpet-retro-red" + desc = "A piece of carpet with red-ical space patterns. It is the same size as a normal floor tile!" + +// TODO - Add descriptions to these /obj/item/stack/tile/carpet/bcarpet icon_state = "tile-carpet" /obj/item/stack/tile/carpet/blucarpet @@ -111,10 +146,6 @@ icon_state = "tile-carpet" /obj/item/stack/tile/carpet/oracarpet icon_state = "tile-carpet" -/obj/item/stack/tile/carpet/deco - icon_state = "tile-carpet-deco" -/obj/item/stack/tile/carpet/retro - icon_state = "tile-carpet-retro" /obj/item/stack/tile/floor name = "floor tile" diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index a843bc06d3..6f487f109d 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -320,18 +320,24 @@ var/list/flooring_types icon_base = "tealcarpet" build_type = /obj/item/stack/tile/carpet/teal -/decl/flooring/carpet/deco - name = "deco carpet" - icon_base = "decocarpet" - build_type = /obj/item/stack/tile/carpet/deco +/decl/flooring/carpet/geo + name = "geometric carpet" + icon_base = "geocarpet" + build_type = /obj/item/stack/tile/carpet/geo flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN /decl/flooring/carpet/retro - name = "retro carpet" + name = "blue retro carpet" icon_base = "retrocarpet" build_type = /obj/item/stack/tile/carpet/retro flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN +/decl/flooring/carpet/retro_red + name = "red retro carpet" + icon_base = "retrocarpet_red" + build_type = /obj/item/stack/tile/carpet/retro_red + flags = TURF_REMOVE_CROWBAR | TURF_CAN_BURN + /decl/flooring/tiling name = "floor" desc = "Scuffed from the passage of countless greyshirts." @@ -495,6 +501,31 @@ var/list/flooring_types icon_base = "sifwood" build_type = /obj/item/stack/tile/wood/sif +/decl/flooring/wood/alt + icon = 'icons/turf/flooring/wood.dmi' + icon_base = "wood" + build_type = /obj/item/stack/tile/wood/alt + +/decl/flooring/wood/alt/panel + desc = "Polished wooden panels." + icon = 'icons/turf/flooring/wood.dmi' + icon_base = "wood_panel" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/panel + +/decl/flooring/wood/alt/parquet + desc = "Polished wooden tiles." + icon = 'icons/turf/flooring/wood.dmi' + icon_base = "wood_parquet" + build_type = /obj/item/stack/tile/wood/parquet + +/decl/flooring/wood/alt/tile + desc = "Polished wooden tiles." + icon = 'icons/turf/flooring/wood.dmi' + icon_base = "wood_tile" + has_damage_range = 2 + build_type = /obj/item/stack/tile/wood/tile + /decl/flooring/reinforced name = "reinforced floor" desc = "Heavily reinforced with steel rods." diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 42bf1e780e..a8e25b2e63 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -19,10 +19,10 @@ icon_state = "tealcarpet" initial_flooring = /decl/flooring/carpet/tealcarpet -/turf/simulated/floor/carpet/deco +/turf/simulated/floor/carpet/geo name = "deco carpet" icon_state = "decocarpet" - initial_flooring = /decl/flooring/carpet/deco + initial_flooring = /decl/flooring/carpet/geo /turf/simulated/floor/carpet/retro name = "retro carpet" @@ -60,6 +60,21 @@ icon_state = "oracarpet" initial_flooring = /decl/flooring/carpet/oracarpet +/turf/simulated/floor/carpet/geo + name = "geometric carpet" + icon_state = "geocarpet" + initial_flooring = /decl/flooring/carpet/geo + +/turf/simulated/floor/carpet/retro + name = "blue retro carpet" + icon_state = "retrocarpet" + initial_flooring = /decl/flooring/carpet/retro + +/turf/simulated/floor/carpet/retro_red + name = "red retro carpet" + icon_state = "retrocarpet_red" + initial_flooring = /decl/flooring/carpet/retro_red + /turf/simulated/floor/bluegrid name = "mainframe floor" icon = 'icons/turf/flooring/circuit.dmi' @@ -79,24 +94,67 @@ initial_flooring = /decl/flooring/wood /turf/simulated/floor/wood/broken - icon_state = "wood_broken0" // This gets changed when spawned. + icon_state = "wood-broken0" // This gets changed when spawned. -/turf/simulated/floor/wood/broken/Initialize() +/turf/simulated/floor/wood/broken/LateInitialize() + . = ..() break_tile() - return ..() /turf/simulated/floor/wood/sif name = "alien wooden floor" - icon = 'icons/turf/flooring/wood.dmi' icon_state = "sifwood" initial_flooring = /decl/flooring/wood/sif /turf/simulated/floor/wood/sif/broken - icon_state = "sifwood_broken0" // This gets changed when spawned. + icon_state = "sifwood-broken0" // This gets changed when spawned. -/turf/simulated/floor/wood/sif/broken/Initialize() +/turf/simulated/floor/wood/sif/broken/LateInitialize() + . = ..() + break_tile() + +/turf/simulated/floor/wood/alt + icon = 'icons/turf/flooring/wood.dmi' + initial_flooring = /decl/flooring/wood/alt + +/turf/simulated/floor/wood/alt/broken + icon_state = "wood-broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/alt/broken/LateInitialize() + . = ..() + break_tile() + +/turf/simulated/floor/wood/alt/tile + icon_state = "wood_tile" + initial_flooring = /decl/flooring/wood/alt/tile + +/turf/simulated/floor/wood/alt/tile/broken + icon_state = "wood_tile-broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/alt/tile/broken/LateInitialize() + . = ..() + break_tile() + +/turf/simulated/floor/wood/alt/panel + icon_state = "wood_panel" + initial_flooring = /decl/flooring/wood/alt/panel + +/turf/simulated/floor/wood/alt/panel/broken + icon_state = "wood_panel-broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/alt/panel/broken/LateInitialize() + . = ..() + break_tile() + +/turf/simulated/floor/wood/alt/parquet + icon_state = "wood_parquet" + initial_flooring = /decl/flooring/wood/alt/parquet + +/turf/simulated/floor/wood/alt/parquet/broken + icon_state = "wood_parquet-broken0" // This gets changed when spawned. + +/turf/simulated/floor/wood/alt/parquet/broken/LateInitialize() + . = ..() break_tile() - return ..() /turf/simulated/floor/grass name = "grass patch" diff --git a/code/game/turfs/simulated/floor_icon.dm b/code/game/turfs/simulated/floor_icon.dm index 420d8628b5..82153557a8 100644 --- a/code/game/turfs/simulated/floor_icon.dm +++ b/code/game/turfs/simulated/floor_icon.dm @@ -75,7 +75,10 @@ var/image/no_ceiling_image = null icon_state = "dmg[rand(1,4)]" else if(flooring) if(!isnull(broken) && (flooring.flags & TURF_CAN_BREAK)) - add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-broken-[broken]","broken[broken]")) + if(istype(src, /turf/simulated/floor/wood)) + add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-broken-[broken]","[flooring.icon_base]-broken[broken]")) + else + add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-broken-[broken]","broken[broken]")) if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN)) add_overlay(flooring.get_flooring_overlay("[flooring.icon_base]-burned-[burnt]","burned[burnt]")) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index f2e4ffd67a..b7b494ae65 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -76,22 +76,12 @@ BP_L_LEG = skip_body & EXAMINE_SKIPLEGS, BP_R_LEG = skip_body & EXAMINE_SKIPLEGS) - var/datum/gender/T = gender_datums[get_visible_gender()] + var/gender_hidden = (skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE) + var/gender_key = get_visible_gender(user, gender_hidden) - if((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE)) //big suits/masks/helmets make it hard to tell their gender - T = gender_datums[PLURAL] - - else if(species && species.ambiguous_genders) - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.species && !istype(species, H.species)) - T = gender_datums[PLURAL]// Species with ambiguous_genders will not show their true gender upon examine if the examiner is not also the same species. - if(!(issilicon(user) || isobserver(user))) // Ghosts and borgs are all knowing - T = gender_datums[PLURAL] - - if(!T) - // Just in case someone VVs the gender to something strange. It'll runtime anyway when it hits usages, better to CRASH() now with a helpful message. - CRASH("Gender datum was null; key was '[((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE)) ? PLURAL : gender]'") + var/datum/gender/T = gender_datums[gender_key] + if (!T) + CRASH({"Null gender datum on examine: mob="[src]",hidden="[gender_hidden]",key="[gender_key]",bio="[gender]",id="[identifying_gender]""}) var/name_ender = "" if(!((skip_gear & EXAMINE_SKIPJUMPSUIT) && (skip_body & EXAMINE_SKIPFACE))) @@ -144,7 +134,7 @@ LAZYADD(pocket_msg, r_store_message) if(LAZYLEN(pocket_msg)) tie_msg += " Near the waist it has [english_list(pocket_msg)]." - + if(w_uniform.blood_DNA) msg += "[T.He] [T.is] wearing [bicon(w_uniform)] [w_uniform.gender==PLURAL?"some":"a"] [(w_uniform.blood_color != SYNTH_BLOOD_COLOUR) ? "blood" : "oil"]-stained [w_uniform.name]![tie_msg]" else diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index eeee042284..692a3cb42f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -854,13 +854,25 @@ remoteview_target = null reset_view(0) -/mob/living/carbon/human/get_visible_gender() - if(wear_suit && wear_suit.flags_inv & HIDEJUMPSUIT && ((head && head.flags_inv & HIDEMASK) || wear_mask)) - return PLURAL //plural is the gender-neutral default - if(species) - if(species.ambiguous_genders) - return PLURAL // regardless of what you're wearing, your gender can't be figured out - return get_gender() +/mob/living/carbon/human/get_visible_gender(mob/user, force) + switch(force) + if(VISIBLE_GENDER_FORCE_PLURAL) + return PLURAL + if(VISIBLE_GENDER_FORCE_IDENTIFYING) + return get_gender() + if(VISIBLE_GENDER_FORCE_BIOLOGICAL) + return gender + else + if((wear_mask || (head?.flags_inv & HIDEMASK)) && (wear_suit?.flags_inv & HIDEJUMPSUIT)) + return PLURAL + if(species?.ambiguous_genders && user) + if(ishuman(user)) + var/mob/living/carbon/human/human = user + if(!istype(human.species, species)) + return PLURAL + else if(!isobserver(user) && !issilicon(user)) + return PLURAL + return get_gender() /mob/living/carbon/human/proc/increase_germ_level(n) if(gloves) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 9293eec473..c3eedab5ec 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -170,7 +170,7 @@ // Wind makes it easier or harder to move, depending on if you're with or against the wind. // I don't like that so I'm commenting it out :) - // VOREstation Edit Start + // VOREstation Edit Start /* if((T.is_outdoors()) && (T.z <= SSplanets.z_to_planet.len)) var/datum/planet/P = SSplanets.z_to_planet[z] @@ -292,5 +292,5 @@ /mob/living/carbon/human/set_dir(var/new_dir) . = ..() - if(. && species.tail) + if(. && (species.tail || tail_style)) update_tail_showing() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 248439381c..e793180f16 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -90,7 +90,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() #define L_HAND_LAYER 28 //Left-hand item #define R_HAND_LAYER 29 //Right-hand item #define WING_LAYER 30 //Wings or protrusions over the suit. -#define TAIL_LAYER_ALT 31 //Modified tail-sprite layer. Tend to be larger. +#define TAIL_NORTH_LAYER_ALT 31 //Modified tail-sprite layer. Tend to be larger. #define MODIFIER_EFFECTS_LAYER 32 //Effects drawn by modifiers #define FIRE_LAYER 33 //'Mob on fire' overlay layer #define MOB_WATER_LAYER 34 //'Mob submerged' overlay layer @@ -98,7 +98,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() #define TOTAL_LAYERS 35 //VOREStation edit. <---- KEEP THIS UPDATED, should always equal the highest number here, used to initialize a list. ////////////////////////////////// -#define GET_TAIL_LAYER (dir == NORTH ? TAIL_NORTH_LAYER : TAIL_SOUTH_LAYER) +#define GET_TAIL_LAYER (dir == SOUTH ? TAIL_SOUTH_LAYER : TAIL_NORTH_LAYER) /mob/living/carbon/human var/list/overlays_standing[TOTAL_LAYERS] @@ -836,7 +836,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() suit_sprite = INV_SUIT_DEF_ICON var/icon/c_mask = null - var/tail_is_rendered = (overlays_standing[TAIL_NORTH_LAYER] || overlays_standing[TAIL_SOUTH_LAYER]) + var/tail_is_rendered = (overlays_standing[TAIL_NORTH_LAYER] || overlays_standing[TAIL_NORTH_LAYER_ALT] || overlays_standing[TAIL_SOUTH_LAYER]) var/valid_clip_mask = tail_style?.clip_mask if(tail_is_rendered && valid_clip_mask && !(istype(suit) && suit.taurized)) //Clip the lower half of the suit off using the tail's clip mask for taurs since taur bodies aren't hidden. @@ -954,9 +954,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() return remove_layer(TAIL_NORTH_LAYER) + remove_layer(TAIL_NORTH_LAYER_ALT) remove_layer(TAIL_SOUTH_LAYER) - var tail_layer = GET_TAIL_LAYER + var/tail_layer = GET_TAIL_LAYER + if(tail_alt && tail_layer == TAIL_NORTH_LAYER) + tail_layer = TAIL_NORTH_LAYER_ALT var/image/tail_image = get_tail_image() if(tail_image) @@ -996,9 +999,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() /mob/living/carbon/human/proc/set_tail_state(var/t_state) var/tail_layer = GET_TAIL_LAYER + if(tail_alt && tail_layer == TAIL_NORTH_LAYER) + tail_layer = TAIL_NORTH_LAYER_ALT var/image/tail_overlay = overlays_standing[tail_layer] remove_layer(TAIL_NORTH_LAYER) + remove_layer(TAIL_NORTH_LAYER_ALT) remove_layer(TAIL_SOUTH_LAYER) if(tail_overlay) diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index dae0fe6294..a2d7d216bf 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -213,6 +213,7 @@ // Since they have bellies, add verbs to toggle settings on them. verbs |= /mob/living/simple_mob/proc/toggle_digestion verbs |= /mob/living/simple_mob/proc/toggle_fancygurgle + verbs |= /mob/living/proc/vertical_nom //A much more detailed version of the default /living implementation var/obj/belly/B = new /obj/belly(src) diff --git a/code/modules/projectiles/guns/energy/stun_vr.dm b/code/modules/projectiles/guns/energy/stun_vr.dm index b0bfd53e46..3ddc43986c 100644 --- a/code/modules/projectiles/guns/energy/stun_vr.dm +++ b/code/modules/projectiles/guns/energy/stun_vr.dm @@ -3,4 +3,7 @@ fire_delay = 4 /obj/item/weapon/gun/energy/stunrevolver - charge_cost = 400 \ No newline at end of file + charge_cost = 400 + +/obj/item/weapon/gun/energy/taser/mounted/cyborg + charge_cost = 160 \ No newline at end of file diff --git a/code/modules/vore/eating/bellymodes_vr.dm b/code/modules/vore/eating/bellymodes_vr.dm index 5a92072756..3435541f19 100644 --- a/code/modules/vore/eating/bellymodes_vr.dm +++ b/code/modules/vore/eating/bellymodes_vr.dm @@ -124,7 +124,8 @@ formatted_message = replacetext(formatted_message, "%pred", owner) formatted_message = replacetext(formatted_message, "%prey", M) formatted_message = replacetext(formatted_message, "%countprey", absorbed_count) - to_chat(M, "[formatted_message]") + if(formatted_message) + to_chat(M, "[formatted_message]") else if(digest_mode == DM_DIGEST && !M.digestable) EL = emote_lists[DM_HOLD] // Use Hold's emote list if we're indigestible @@ -136,7 +137,8 @@ formatted_message = replacetext(formatted_message, "%prey", M) formatted_message = replacetext(formatted_message, "%countprey", living_count) formatted_message = replacetext(formatted_message, "%count", contents.len) - to_chat(M, "[formatted_message]") + if(formatted_message) + to_chat(M, "[formatted_message]") if(to_update) updateVRPanels() diff --git a/icons/obj/stacks.dmi b/icons/obj/stacks.dmi index 6a70a2982d..67a370b219 100644 Binary files a/icons/obj/stacks.dmi and b/icons/obj/stacks.dmi differ diff --git a/icons/turf/flooring/carpet.dmi b/icons/turf/flooring/carpet.dmi index f668ae8943..a66db7af48 100644 Binary files a/icons/turf/flooring/carpet.dmi and b/icons/turf/flooring/carpet.dmi differ diff --git a/icons/turf/flooring/wood.dmi b/icons/turf/flooring/wood.dmi index eb91333673..afec20c851 100644 Binary files a/icons/turf/flooring/wood.dmi and b/icons/turf/flooring/wood.dmi differ diff --git a/icons/turf/flooring/wood_vr.dmi b/icons/turf/flooring/wood_vr.dmi index d6024f3de0..f072969e54 100644 Binary files a/icons/turf/flooring/wood_vr.dmi and b/icons/turf/flooring/wood_vr.dmi differ diff --git a/maps/groundbase/gb-z2.dmm b/maps/groundbase/gb-z2.dmm index 48d050d8cf..b148fac3b2 100644 --- a/maps/groundbase/gb-z2.dmm +++ b/maps/groundbase/gb-z2.dmm @@ -466,7 +466,7 @@ /turf/simulated/floor/lino, /area/groundbase/civilian/chapel/office) "bl" = ( -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "bn" = ( /obj/machinery/door/airlock{ @@ -2397,7 +2397,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "gZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -2493,7 +2493,7 @@ /obj/structure/bed/chair/sofa/black, /obj/machinery/alarm, /obj/effect/landmark/start/chef, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "hp" = ( /obj/structure/bed/chair/sofa/pew/left{ @@ -4272,7 +4272,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "mo" = ( /obj/structure/table/woodentable, @@ -4529,7 +4529,7 @@ /area/groundbase/civilian/janitor) "nf" = ( /obj/structure/table/wooden_reinforced, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "ng" = ( /obj/machinery/camera/network/research{ @@ -10608,7 +10608,7 @@ /area/groundbase/medical/psych) "EW" = ( /obj/structure/bed/chair/sofa/right/black, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "EX" = ( /obj/structure/closet/secure_closet/quartermaster, @@ -13850,7 +13850,7 @@ /obj/structure/bed/chair/sofa/black{ dir = 8 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "NU" = ( /obj/structure/sign/painting/library_secure{ @@ -13949,7 +13949,7 @@ /obj/structure/bed/chair/sofa/left/black{ dir = 8 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "Oi" = ( /obj/structure/disposalpipe/tagger{ @@ -13971,7 +13971,7 @@ layer = 3.3; pixel_y = -27 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "Ok" = ( /obj/machinery/power/apc{ @@ -17751,7 +17751,7 @@ /area/groundbase/cargo/office) "Zi" = ( /obj/machinery/firealarm, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/groundbase/civilian/kitchen/backroom) "Zk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply, diff --git a/maps/stellardelight/overmap.dmm b/maps/stellardelight/overmap.dmm index 2890f0159b..8edb64c502 100644 --- a/maps/stellardelight/overmap.dmm +++ b/maps/stellardelight/overmap.dmm @@ -9,7 +9,7 @@ /turf/unsimulated/map, /area/overmap) "I" = ( -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/space) "J" = ( /obj/effect/overmap/bluespace_rift, diff --git a/maps/stellardelight/stellar_delight3.dmm b/maps/stellardelight/stellar_delight3.dmm index 418fa680b0..d792ad77b3 100644 --- a/maps/stellardelight/stellar_delight3.dmm +++ b/maps/stellardelight/stellar_delight3.dmm @@ -8114,7 +8114,7 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, -/turf/simulated/floor/carpet/deco, +/turf/simulated/floor/carpet/geo, /area/ai) "Dy" = ( /obj/machinery/atmospherics/pipe/simple/hidden/black,