From c9f02d97a195e3eb1699cf5489b8517ffea8139a Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 02:47:16 +0100 Subject: [PATCH 01/75] Privates Visibility Preferences. Also Undergarments having a purpose. --- code/__DEFINES/citadel_defines.dm | 8 +++ code/__DEFINES/misc.dm | 19 ++--- code/__HELPERS/_cit_helpers.dm | 9 ++- code/__HELPERS/global_lists.dm | 5 -- code/__HELPERS/mobs.dm | 11 ++- .../configuration/entries/game_options.dm | 5 ++ code/game/gamemodes/changeling/changeling.dm | 4 +- code/game/objects/structures/dresser.dm | 2 +- .../objects/structures/ghost_role_spawners.dm | 2 +- code/modules/admin/create_mob.dm | 2 +- .../antagonists/bloodsucker/powers/veil.dm | 4 +- code/modules/antagonists/devil/devil.dm | 4 +- code/modules/awaymissions/corpse.dm | 2 +- code/modules/client/preferences.dm | 47 ++++++++----- .../sprite_accessories/_sprite_accessories.dm | 6 +- .../sprite_accessories/undershirt.dm | 4 ++ .../sprite_accessories/underwear.dm | 7 ++ code/modules/mob/living/carbon/human/human.dm | 3 +- .../mob/living/carbon/human/update_icons.dm | 6 +- .../code/modules/arousal/arousal.dm | 2 +- .../code/modules/arousal/genitals.dm | 70 ++++++++++++------- .../arousal/genitals_sprite_accessories.dm | 6 +- .../code/modules/arousal/organs/breasts.dm | 6 +- .../code/modules/arousal/organs/penis.dm | 10 ++- .../code/modules/arousal/organs/testicles.dm | 8 +-- .../code/modules/arousal/organs/vagina.dm | 3 +- .../code/modules/client/preferences.dm | 6 -- 27 files changed, 148 insertions(+), 113 deletions(-) diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 01355173d2..8b4ef2aca4 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -35,6 +35,8 @@ #define MASTURBATE_LINKED_ORGAN (1<<6) //used to pass our mission to the linked organ #define CAN_CLIMAX_WITH (1<<7) #define GENITAL_CAN_AROUSE (1<<8) +#define GENITAL_UNDIES_HIDDEN (1<<9) +#define UPDATE_OWNER_APPEARANCE (1<<10) #define DEF_VAGINA_SHAPE "Human" @@ -71,6 +73,12 @@ #define MILK_RATE_MULT 1 #define MILK_EFFICIENCY 1 +//visibility toggles defines to avoid errors typos code errors. +#define GEN_VISIBLE_ALWAYS "Always visible" +#define GEN_VISIBLE_NO_CLOTHES "Hidden by clothes" +#define GEN_VISIBLE_NO_UNDIES "Hidden by underwear" +#define GEN_VISIBLE_NEVER "Always hidden" + //Individual logging define #define INDIVIDUAL_LOOC_LOG "LOOC log" diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 89cacc1c7b..3a1e44f053 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -27,14 +27,15 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s //Human Overlays Indexes///////// //LOTS OF CIT CHANGES HERE. BE CAREFUL WHEN UPSTREAM ADDS MORE LAYERS -#define MUTATIONS_LAYER 32 //mutations. Tk headglows, cold resistance glow, etc -#define GENITALS_BEHIND_LAYER 31 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer -#define BODY_BEHIND_LAYER 30 //certain mutantrace features (tail when looking south) that must appear behind the body parts -#define BODYPARTS_LAYER 29 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag -#define MARKING_LAYER 28 //Matrixed body markings because clashing with snouts? -#define BODY_ADJ_LAYER 27 //certain mutantrace features (snout, body markings) that must appear above the body parts -#define GENITALS_FRONT_LAYER 26 //Draws some genitalia above clothes and the TAUR body if need be. -#define BODY_LAYER 25 //underwear, undershirts, socks, eyes, lips(makeup) +#define MUTATIONS_LAYER 33 //mutations. Tk headglows, cold resistance glow, etc +#define GENITALS_BEHIND_LAYER 32 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer +#define BODY_BEHIND_LAYER 31 //certain mutantrace features (tail when looking south) that must appear behind the body parts +#define BODYPARTS_LAYER 30 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag +#define MARKING_LAYER 29 //Matrixed body markings because clashing with snouts? +#define BODY_ADJ_LAYER 28 //certain mutantrace features (snout, body markings) that must appear above the body parts +#define GENITALS_FRONT_LAYER 27 //Draws some genitalia above clothes and the TAUR body if need be. +#define BODY_LAYER 26 //underwear, undershirts, socks, eyes, lips(makeup) +#define GENITALS_NO_UNDIE_LAYER 25 //found above undergarments. #define FRONT_MUTATIONS_LAYER 24 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) #define DAMAGE_LAYER 23 //damage indicators (cuts and burns) #define UNIFORM_LAYER 22 @@ -59,7 +60,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define HANDS_LAYER 3 #define BODY_FRONT_LAYER 2 #define FIRE_LAYER 1 //If you're on fire -#define TOTAL_LAYERS 32 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; +#define TOTAL_LAYERS 33 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; //Human Overlay Index Shortcuts for alternate_worn_layer, layers //Because I *KNOW* somebody will think layer+1 means "above" diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm index cc8ab0d250..9afae12c30 100644 --- a/code/__HELPERS/_cit_helpers.dm +++ b/code/__HELPERS/_cit_helpers.dm @@ -58,14 +58,13 @@ GLOBAL_LIST_EMPTY(ipc_antennas_list) //Genitals and Arousal Lists GLOBAL_LIST_EMPTY(genitals_list) GLOBAL_LIST_EMPTY(cock_shapes_list) -GLOBAL_LIST_EMPTY(gentlemans_organ_names) GLOBAL_LIST_EMPTY(balls_shapes_list) GLOBAL_LIST_EMPTY(breasts_shapes_list) GLOBAL_LIST_EMPTY(vagina_shapes_list) -GLOBAL_LIST_INIT(cum_into_containers_list, list(/obj/item/reagent_containers/food/snacks/pie)) //Yer fuggin snowflake name list jfc -GLOBAL_LIST_INIT(dick_nouns, list("dick","cock","member","shaft")) -GLOBAL_LIST_INIT(cum_id_list,"semen") -GLOBAL_LIST_INIT(milk_id_list,"milk") +//longcat memes. +GLOBAL_LIST_INIT(dick_nouns, list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "One eyed trouser trout", "Ding dong", "ankle spanker", "Pork sword", "engine cranker", "Harry hot dog", "Davy Crockett", "Kidney cracker", "Heat seeking moisture missile", "Giggle stick", "love whistle", "Tube steak", "Uncle Dick", "Purple helmet warrior")) + +GLOBAL_LIST_INIT(genitals_visibility_toggles, list(GEN_VISIBLE_ALWAYS, GEN_VISIBLE_NO_CLOTHES, GEN_VISIBLE_NO_UNDIES, GEN_VISIBLE_NEVER)) GLOBAL_LIST_INIT(dildo_shapes, list( "Human" = "human", diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index ff2559b661..38e25b04c5 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -54,11 +54,6 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list) init_sprite_accessory_subtypes(/datum/sprite_accessory/testicles, GLOB.balls_shapes_list) - GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", - "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", - "baloney pony", "schlanger", "Mutton dagger", "old blind bob","Hanging Johnny", "fishing rod", "Tally whacker", "polly rocket", - "One eyed trouser trout", "Ding dong", "ankle spanker", "Pork sword", "engine cranker", "Harry hot dog", "Davy Crockett", - "Kidney cracker", "Heat seeking moisture missile", "Giggle stick", "love whistle", "Tube steak", "Uncle Dick", "Purple helmet warrior") for(var/gpath in subtypesof(/obj/item/organ/genital)) var/obj/item/organ/genital/G = gpath diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index b8edf3b0f4..f7546193aa 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -185,7 +185,6 @@ "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "has_balls" = FALSE, - "balls_internal" = FALSE, "balls_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "balls_size" = BALLS_SIZE_DEF, "balls_shape" = DEF_BALLS_SHAPE, @@ -200,13 +199,11 @@ "has_vag" = FALSE, "vag_shape" = pick(GLOB.vagina_shapes_list), "vag_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), - "vag_clits" = 1, - "vag_clit_diam" = 0.25, - "vag_clit_len" = 0.25, "has_womb" = FALSE, - "womb_cum_rate" = CUM_RATE, - "womb_cum_mult" = CUM_RATE_MULT, - "womb_efficiency" = CUM_EFFICIENCY, + "balls_visibility" = GEN_VISIBLE_NO_UNDIES, + "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, + "cock_visibility" = GEN_VISIBLE_NO_UNDIES, + "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None", "ipc_antenna" = "None", "flavor_text" = "", diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index bc290bedb9..b233e92007 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -436,3 +436,8 @@ /datum/config_entry/number/penis_max_inches_prefs config_entry_value = 20 min_val = 0 + +/datum/config_entry/keyed_list/safe_visibility_toggles + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_FLAG + config_entry_value = list(GEN_VISIBLE_NO_CLOTHES, GEN_VISIBLE_NO_UNDIES, GEN_VISIBLE_NEVER) //refer to cit_helpers for all toggles. diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 14fe960422..4db8f4129a 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -88,13 +88,13 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th user.underwear = chosen_prof.underwear user.undie_color = chosen_prof.undie_color user.undershirt = chosen_prof.undershirt - user.shirt_color =chosen_prof.shirt_color + user.shirt_color = chosen_prof.shirt_color user.socks = chosen_prof.socks user.socks_color =chosen_prof.socks_color chosen_dna.transfer_identity(user, 1) user.updateappearance(mutcolor_update=1) - user.update_body() + user.update_body(TRUE) user.domutcheck() //vars hackery. not pretty, but better than the alternative. diff --git a/code/game/objects/structures/dresser.dm b/code/game/objects/structures/dresser.dm index ecacf49fc2..528153324d 100644 --- a/code/game/objects/structures/dresser.dm +++ b/code/game/objects/structures/dresser.dm @@ -73,7 +73,7 @@ H.socks_color = recolor_undergarment(H, "socks", H.socks_color) add_fingerprint(H) - H.update_body() + H.update_body(TRUE) /obj/structure/dresser/proc/recolor_undergarment(mob/living/carbon/human/H, garment_type = "underwear", default_color) var/n_color = input(H, "Choose your [garment_type]'\s color.", "Character Preference", default_color) as color|null diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 7469bd2e72..65145c0eed 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -31,7 +31,7 @@ new_spawn.underwear = "Nude" //You're a plant, partner new_spawn.undershirt = "Nude" //changing underwear/shirt/socks doesn't seem to function correctly right now because of some bug elsewhere? new_spawn.socks = "Nude" - new_spawn.update_body() + new_spawn.update_body(TRUE) //Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers. diff --git a/code/modules/admin/create_mob.dm b/code/modules/admin/create_mob.dm index 3336da7267..3e604856c5 100644 --- a/code/modules/admin/create_mob.dm +++ b/code/modules/admin/create_mob.dm @@ -45,6 +45,6 @@ SEND_SIGNAL(H, COMSIG_HUMAN_ON_RANDOMIZE) - H.update_body() + H.update_body(TRUE) H.update_hair() H.update_body_parts() diff --git a/code/modules/antagonists/bloodsucker/powers/veil.dm b/code/modules/antagonists/bloodsucker/powers/veil.dm index 0b3cded832..ecb0611940 100644 --- a/code/modules/antagonists/bloodsucker/powers/veil.dm +++ b/code/modules/antagonists/bloodsucker/powers/veil.dm @@ -95,7 +95,7 @@ H.dna.features = random_features(H.dna.species?.id) // Apply Appearance - H.update_body() // Outfit and underware, also body. + H.update_body(TRUE) // Outfit and underwear, also body and privates. //H.update_mutant_bodyparts() // Lizard tails etc H.update_hair() H.update_body_parts() @@ -140,7 +140,7 @@ ADD_TRAIT(H, TRAIT_DISFIGURED, "husk") // NOTE: We are ASSUMING husk. // H.status_flags |= DISFIGURED // Restore "Unknown" disfigurement H.dna.features = prev_features // Apply Appearance - H.update_body() // Outfit and underware, also body. + H.update_body(TRUE) // Outfit and underwear, also body and privates. H.update_hair() H.update_body_parts() // Body itself, maybe skin color? cast_effect() // POOF diff --git a/code/modules/antagonists/devil/devil.dm b/code/modules/antagonists/devil/devil.dm index 1d0bfde322..26e6283f09 100644 --- a/code/modules/antagonists/devil/devil.dm +++ b/code/modules/antagonists/devil/devil.dm @@ -244,7 +244,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", H.undershirt = "Nude" H.socks = "Nude" H.dna.features["mcolor"] = "511" //A deep red - H.regenerate_icons() + H.update_body(TRUE) else //Did the devil get hit by a staff of transmutation? owner.current.color = "#501010" give_appropriate_spells() @@ -466,7 +466,7 @@ GLOBAL_LIST_INIT(devil_suffix, list(" the Red", " the Soulless", " the Master", H.undershirt = "Nude" H.socks = "Nude" H.dna.features["mcolor"] = "511" - H.regenerate_icons() + H.update_body(TRUE) if(SOULVALUE >= TRUE_THRESHOLD) //Yes, BOTH this and the above if statement are to run if soulpower is high enough. var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(targetturf) A.faction |= "hell" diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index f740ed27dd..50dd1e5608 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -208,7 +208,7 @@ else H.skin_tone = random_skin_tone() H.update_hair() - H.update_body() + H.update_body() //update_genitals arg FALSE because these don't quite require/have them most times. if(outfit) var/static/list/slots = list("uniform", "r_hand", "l_hand", "suit", "shoes", "gloves", "ears", "glasses", "mask", "head", "belt", "r_pocket", "l_pocket", "back", "id", "neck", "backpack_contents", "suit_store") for(var/slot in slots) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 87330ce42c..1b280baa56 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -126,7 +126,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) "cock_diameter_ratio" = COCK_DIAMETER_RATIO_DEF, "cock_color" = "fff", "has_balls" = FALSE, - "balls_internal" = FALSE, "balls_color" = "fff", "balls_shape" = DEF_BALLS_SHAPE, "balls_size" = BALLS_SIZE_DEF, @@ -141,12 +140,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) "has_vag" = FALSE, "vag_shape" = DEF_VAGINA_SHAPE, "vag_color" = "fff", - "vag_clits" = 1, - "vag_clit_diam" = 0.25, "has_womb" = FALSE, - "womb_cum_rate" = CUM_RATE, - "womb_cum_mult" = CUM_RATE_MULT, - "womb_efficiency" = CUM_EFFICIENCY, + "balls_visibility" = GEN_VISIBLE_NO_UNDIES, + "breasts_visibility"= GEN_VISIBLE_NO_UNDIES, + "cock_visibility" = GEN_VISIBLE_NO_UNDIES, + "vag_visibility" = GEN_VISIBLE_NO_UNDIES, "ipc_screen" = "Sunburst", "ipc_antenna" = "None", "flavor_text" = "", @@ -763,6 +761,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "    Change
" dat += "Penis Shape: [features["cock_shape"]]" dat += "Penis Length: [features["cock_length"]] inch(es)" + dat += "Penis Visibility:[features["cock_visibility"]]" dat += "Has Testicles:[features["has_balls"] == TRUE ? "Yes" : "No"]" if(features["has_balls"]) if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) @@ -771,7 +770,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else dat += "Testicles Color:
" dat += "    Change
" - dat += "Testicles showing:[features["balls_shape"]]" + dat += "Testicles Visibility:[features["balls_visibility"]]" dat += APPEARANCE_CATEGORY_COLUMN dat += "

Vagina

" dat += "[features["has_vag"] == TRUE ? "Yes" : "No"]" @@ -783,6 +782,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else dat += "Vagina Color:
" dat += "    Change
" + dat += "Vagina Visibility:[features["vag_visibility"]]" dat += "Has Womb:[features["has_womb"] == TRUE ? "Yes" : "No"]" dat += "" dat += APPEARANCE_CATEGORY_COLUMN @@ -796,7 +796,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Color:
" dat += "    Change
" dat += "Cup Size:[features["breasts_size"]]" - dat += "Breast Shape:[features["breasts_shape"]]" + dat += "Breasts Shape:[features["breasts_shape"]]" + dat += "Breasts Visibility:[features["breasts_visibility"]]" dat += "Lactates:[features["breasts_producing"] == TRUE ? "Yes" : "No"]" dat += "" dat += "" @@ -1939,8 +1940,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_shape) features["cock_shape"] = new_shape + if("cock_visibility") + var/n_vis = input(user, "Penis Visibility", "Character Preference") as null|anything in CONFIG_GET(keyed_list/safe_visibility_toggles) + if(n_vis) + features["cock_visibility"] = n_vis + if("balls_color") - var/new_ballscolor = input(user, "Testicle Color:", "Character Preference") as color|null + var/new_ballscolor = input(user, "Testicles Color:", "Character Preference") as color|null if(new_ballscolor) var/temp_hsv = RGBtoHSV(new_ballscolor) if(new_ballscolor == "#000000") @@ -1950,11 +1956,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) else to_chat(user,"Invalid color. Your color is not bright enough.") - if("balls_shape") - var/new_shape - new_shape = input(user, "Testicle Type:", "Character Preference") as null|anything in GLOB.balls_shapes_list - if(new_shape) - features["balls_shape"] = new_shape + if("balls_visibility") + var/n_vis = input(user, "Testicles Visibility", "Character Preference") as null|anything in CONFIG_GET(keyed_list/safe_visibility_toggles) + if(n_vis) + features["balls_visibility"] = n_vis if("breasts_size") var/new_size = input(user, "Breast Size", "Character Preference") as null|anything in CONFIG_GET(keyed_list/breasts_cups_prefs) @@ -1978,6 +1983,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) else to_chat(user,"Invalid color. Your color is not bright enough.") + if("breasts_visibility") + var/n_vis = input(user, "Breasts Visibility", "Character Preference") as null|anything in CONFIG_GET(keyed_list/safe_visibility_toggles) + if(n_vis) + features["breasts_visibility"] = n_vis + if("vag_shape") var/new_shape new_shape = input(user, "Vagina Type", "Character Preference") as null|anything in GLOB.vagina_shapes_list @@ -1995,6 +2005,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) else to_chat(user,"Invalid color. Your color is not bright enough.") + if("vag_visibility") + var/n_vis = input(user, "Vagina Visibility", "Character Preference") as null|anything in CONFIG_GET(keyed_list/safe_visibility_toggles) + if(n_vis) + features["vag_visibility"] = n_vis + if("ooccolor") var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference",ooccolor) as color|null if(new_ooccolor) @@ -2088,8 +2103,6 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["has_balls"] = FALSE if("has_balls") features["has_balls"] = !features["has_balls"] - if("balls_internal") - features["balls_internal"] = !features["balls_internal"] if("has_breasts") features["has_breasts"] = !features["has_breasts"] if(features["has_breasts"] == FALSE) @@ -2409,6 +2422,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) else character.Digitigrade_Leg_Swap(TRUE) + character.give_genitals(TRUE) //character.update_genitals() is already called on genital.update_appearance() + SEND_SIGNAL(character, COMSIG_HUMAN_PREFS_COPIED_TO, src, icon_updates, roundstart_checks) //let's be sure the character updates diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm index abe51bf486..4365e59a7a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm @@ -71,11 +71,13 @@ //for snowflake/donor specific sprites var/list/ckeys_allowed - + //For soft-restricting markings to species IDs var/list/recommended_species /datum/sprite_accessory/underwear icon = 'icons/mob/underwear.dmi' var/has_color = FALSE - var/has_digitigrade = FALSE \ No newline at end of file + var/has_digitigrade = FALSE + var/covers_groin = FALSE + var/covers_chest = FALSE \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm index 58c64dc7d0..73233f3e09 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm @@ -2,9 +2,13 @@ // Undershirt Definitions // //////////////////////////// +/datum/sprite_accessory/underwear/top + covers_chest = TRUE + /datum/sprite_accessory/underwear/top/nude name = "Nude" icon_state = null + covers_chest = FALSE // please make sure they're sorted alphabetically and categorized diff --git a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm index 9441b5120a..58d5e1ba88 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm @@ -2,9 +2,13 @@ // Underwear Definitions // /////////////////////////// +/datum/sprite_accessory/underwear/bottom + covers_groin = TRUE + /datum/sprite_accessory/underwear/bottom/nude name = "Nude" icon_state = null + covers_groin = FALSE /datum/sprite_accessory/underwear/bottom/mankini name = "Mankini" @@ -155,16 +159,19 @@ name = "Swimsuit, One Piece - Red" icon_state = "swimming_red" gender = FEMALE + covers_chest = TRUE /datum/sprite_accessory/underwear/bottom/swimsuit name = "Swimsuit, One Piece - Black" icon_state = "swimming_black" gender = FEMALE + covers_chest = TRUE /datum/sprite_accessory/underwear/bottom/swimsuit_blue name = "Swimsuit, One Piece - Striped Blue" icon_state = "swimming_blue" gender = FEMALE + covers_chest = TRUE /datum/sprite_accessory/underwear/bottom/thong name = "Thong" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 57667293e7..bbc109ab38 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -629,9 +629,8 @@ underwear = "Nude" undershirt = "Nude" socks = "Nude" - update_body() + update_body(TRUE) update_hair() - update_genitals() /mob/living/carbon/human/singularity_pull(S, current_size) ..() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 66233f7243..bb80f7555c 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -57,10 +57,12 @@ There are several things that need to be remembered: dna.species.handle_mutant_bodyparts(src) -/mob/living/carbon/human/update_body() +/mob/living/carbon/human/update_body(update_genitals = FALSE) remove_overlay(BODY_LAYER) dna.species.handle_body(src) ..() + if(update_genitals) + update_genitals() /mob/living/carbon/human/update_fire() ..((fire_stacks > 3) ? "Standing" : "Generic_mob_burning") @@ -72,7 +74,7 @@ There are several things that need to be remembered: if(!..()) icon_render_key = null //invalidate bodyparts cache - update_body() + update_body(TRUE) update_hair() update_inv_w_uniform() update_inv_wear_id() diff --git a/modular_citadel/code/modules/arousal/arousal.dm b/modular_citadel/code/modules/arousal/arousal.dm index 5c7d5a39e9..843672877e 100644 --- a/modular_citadel/code/modules/arousal/arousal.dm +++ b/modular_citadel/code/modules/arousal/arousal.dm @@ -33,7 +33,7 @@ hidden_underwear = on_off hidden_socks = on_off - update_body() + update_body(TRUE) /mob/living/carbon/human/proc/adjust_arousal(strength,aphro = FALSE,maso = FALSE) // returns all genitals that were adjust diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index 6f0588f76e..87379274b6 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -41,6 +41,9 @@ return update_size() update_appearance() + if(genital_flags & UPDATE_OWNER_APPEARANCE && owner && ishuman(owner)) + var/mob/living/carbon/human/H = owner + H.update_genitals() if(linked_organ_slot || (linked_organ && !owner)) update_link() @@ -49,9 +52,16 @@ var/list/exposed_genitals = list() //Keeping track of them so we don't have to iterate through every genitalia and see if exposed /obj/item/organ/genital/proc/is_exposed() - if(!owner || CHECK_BITFIELD(genital_flags, GENITAL_INTERNAL) || CHECK_BITFIELD(genital_flags, GENITAL_HIDDEN)) + if(!owner || genital_flags & (GENITAL_INTERNAL|GENITAL_HIDDEN)) return FALSE - if(CHECK_BITFIELD(genital_flags, GENITAL_THROUGH_CLOTHES)) + if(genital_flags & GENITAL_UNDIES_HIDDEN && ishuman(owner)) + var/mob/living/carbon/human/H = owner + if(!(NO_UNDERWEAR in H.dna.species.species_traits)) + var/datum/sprite_accessory/underwear/top/T = GLOB.undershirt_list[H.undershirt] + var/datum/sprite_accessory/underwear/bottom/B = GLOB.underwear_list[H.underwear] + if(zone == BODY_ZONE_CHEST ? (H.hidden_undershirt || T?.covers_chest || B?.covers_chest) : (H.hidden_underwear || T?.covers_groin || B?.covers_groin)) + return FALSE + if(genital_flags & GENITAL_THROUGH_CLOTHES) return TRUE switch(zone) //update as more genitals are added @@ -60,25 +70,19 @@ if(BODY_ZONE_PRECISE_GROIN) return owner.is_groin_exposed() -/obj/item/organ/genital/proc/toggle_visibility(visibility) +/obj/item/organ/genital/proc/toggle_visibility(visibility, update = TRUE) + genital_flags &= ~(GENITAL_THROUGH_CLOTHES|GENITAL_HIDDEN|GENITAL_UNDIES_HIDDEN) + owner.exposed_genitals -= src switch(visibility) - if("Always visible") - ENABLE_BITFIELD(genital_flags, GENITAL_THROUGH_CLOTHES) - DISABLE_BITFIELD(genital_flags, GENITAL_HIDDEN) - if(!(src in owner.exposed_genitals)) - owner.exposed_genitals += src - if("Hidden by clothes") - DISABLE_BITFIELD(genital_flags, GENITAL_THROUGH_CLOTHES) - DISABLE_BITFIELD(genital_flags, GENITAL_HIDDEN) - if(src in owner.exposed_genitals) - owner.exposed_genitals -= src - if("Always hidden") - DISABLE_BITFIELD(genital_flags, GENITAL_THROUGH_CLOTHES) - ENABLE_BITFIELD(genital_flags, GENITAL_HIDDEN) - if(src in owner.exposed_genitals) - owner.exposed_genitals -= src + if(GEN_VISIBLE_ALWAYS) + genital_flags |= GENITAL_THROUGH_CLOTHES + owner.exposed_genitals += src + if(GEN_VISIBLE_NO_UNDIES) + genital_flags |= GENITAL_UNDIES_HIDDEN + if(GEN_VISIBLE_NEVER) + genital_flags |= GENITAL_HIDDEN - if(ishuman(owner)) //recast to use update genitals proc + if(update && ishuman(owner)) //recast to use update genitals proc var/mob/living/carbon/human/H = owner H.update_genitals() @@ -87,6 +91,10 @@ set name = "Expose/Hide genitals" set desc = "Allows you to toggle which genitals should show through clothes or not." + if(stat != CONSCIOUS) + to_chat(usr, "You can toggle genitals visibility right now...") + return + var/list/genital_list = list() for(var/obj/item/organ/genital/G in internal_organs) if(!CHECK_BITFIELD(G.genital_flags, GENITAL_INTERNAL)) @@ -95,10 +103,11 @@ return //Full list of exposable genitals created var/obj/item/organ/genital/picked_organ - picked_organ = input(src, "Choose which genitalia to expose/hide", "Expose/Hide genitals", null) in genital_list - if(picked_organ) - var/picked_visibility = input(src, "Choose visibility setting", "Expose/Hide genitals", "Hidden by clothes") in list("Always visible", "Hidden by clothes", "Always hidden") - picked_organ.toggle_visibility(picked_visibility) + picked_organ = input(src, "Choose which genitalia to expose/hide", "Expose/Hide genitals") as null|anything in genital_list + if(picked_organ && (picked_organ in internal_organs)) + var/picked_visibility = input(src, "Choose visibility setting", "Expose/Hide genitals") as null|anything in GLOB.genitals_visibility_toggles + if(picked_visibility && picked_organ && (picked_organ in internal_organs)) + picked_organ.toggle_visibility(picked_visibility) return /mob/living/carbon/verb/toggle_arousal_state() @@ -256,6 +265,7 @@ var/list/gen_index[GENITAL_LAYER_INDEX_LENGTH] var/list/genitals_to_add var/list/fully_exposed + var/list/somewhat_exposed for(var/obj/item/organ/genital/G in internal_organs) if(G.is_exposed()) //Checks appropriate clothing slot and if it's through_clothes LAZYADD(gen_index[G.layer_index], G) @@ -306,9 +316,13 @@ genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size][dna.species.use_skintones ? "_s" : ""]_[aroused_state]_[layertext]" - if(layers_num[layer] == GENITALS_FRONT_LAYER && CHECK_BITFIELD(G.genital_flags, GENITAL_THROUGH_CLOTHES)) - genital_overlay.layer = -GENITALS_EXPOSED_LAYER - LAZYADD(fully_exposed, genital_overlay) // to be added to a layer with higher priority than clothes, hence the name of the bitflag. + if(layers_num[layer] == GENITALS_FRONT_LAYER) + if(G.genital_flags & GENITAL_THROUGH_CLOTHES) + genital_overlay.layer = -GENITALS_EXPOSED_LAYER + LAZYADD(fully_exposed, genital_overlay) + else if(!(G.genital_flags & GENITAL_UNDIES_HIDDEN)) + genital_overlay.layer = -GENITALS_NO_UNDIE_LAYER + LAZYADD(somewhat_exposed, genital_overlay) else genital_overlay.layer = -layers_num[layer] standing += genital_overlay @@ -320,6 +334,10 @@ overlays_standing[GENITALS_EXPOSED_LAYER] = fully_exposed apply_overlay(GENITALS_EXPOSED_LAYER) + if(LAZYLEN(somewhat_exposed)) + overlays_standing[GENITALS_NO_UNDIE_LAYER] = somewhat_exposed + apply_overlay(GENITALS_NO_UNDIE_LAYER) + for(var/L in relevant_layers) apply_overlay(layers_num[L]) diff --git a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm b/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm index 07453facdf..92c643c4bd 100644 --- a/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm +++ b/modular_citadel/code/modules/arousal/genitals_sprite_accessories.dm @@ -74,13 +74,9 @@ name = "testicle" //the preview name of the accessory color_src = "balls_color" -/datum/sprite_accessory/testicles/hidden - icon_state = "none" - name = "Hidden" - /datum/sprite_accessory/testicles/single icon_state = "single" - name = "Single" + name = "Single" //Single as "single pair", for clarity. //Vaginas /datum/sprite_accessory/vagina diff --git a/modular_citadel/code/modules/arousal/organs/breasts.dm b/modular_citadel/code/modules/arousal/organs/breasts.dm index bfa506da6d..8183ba92bc 100644 --- a/modular_citadel/code/modules/arousal/organs/breasts.dm +++ b/modular_citadel/code/modules/arousal/organs/breasts.dm @@ -12,7 +12,7 @@ fluid_id = /datum/reagent/consumable/milk fluid_rate = MILK_RATE shape = DEF_BREASTS_SHAPE - genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_FUID_PRODUCTION|GENITAL_CAN_AROUSE + genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_FUID_PRODUCTION|GENITAL_CAN_AROUSE|UPDATE_OWNER_APPEARANCE|GENITAL_UNDIES_HIDDEN masturbation_verb = "massage" arousal_verb = "Your breasts start feeling sensitive" unarousal_verb = "Your breasts no longer feel sensitive" @@ -64,9 +64,6 @@ icon_state += "_s" else color = "#[owner.dna.features["breasts_color"]]" - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - H.update_genitals() //Allows breasts to grow and change size, with sprite changes too. //maximum wah @@ -133,6 +130,7 @@ cached_size = size size = breast_values[size] prev_size = cached_size + toggle_visibility(D.features["breasts_visibility"], FALSE) #undef BREASTS_ICON_MIN_SIZE #undef BREASTS_ICON_MAX_SIZE \ No newline at end of file diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index 294ac6c877..ded05134a9 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -8,7 +8,7 @@ masturbation_verb = "stroke" arousal_verb = "You pop a boner" unarousal_verb = "Your boner goes down" - genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE + genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE|UPDATE_OWNER_APPEARANCE|GENITAL_UNDIES_HIDDEN linked_organ_slot = ORGAN_SLOT_TESTICLES fluid_transfer_factor = 0.5 shape = DEF_COCK_SHAPE @@ -66,9 +66,9 @@ if(owner) if (round(length) > round(prev_length)) - to_chat(owner, "Your [pick(GLOB.gentlemans_organ_names)] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(round(length))] inch penis.") + to_chat(owner, "Your [pick(GLOB.dick_nouns)] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(round(length))] inch penis.") else if ((round(length) < round(prev_length)) && (length > 0.5)) - to_chat(owner, "Your [pick(GLOB.gentlemans_organ_names)] [pick("shrinks down to", "decreases into", "diminishes into", "deflates into", "shrivels regretfully into", "contracts into")] a [uppertext(round(length))] inch penis.") + to_chat(owner, "Your [pick(GLOB.dick_nouns)] [pick("shrinks down to", "decreases into", "diminishes into", "deflates into", "shrivels regretfully into", "contracts into")] a [uppertext(round(length))] inch penis.") icon_state = sanitize_text("penis_[shape]_[size]") diameter = (length * diameter_ratio)//Is it just me or is this ludicous, why not make it exponentially decay? @@ -89,9 +89,6 @@ icon_state += "_s" else color = "#[owner.dna.features["cock_color"]]" - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - H.update_genitals() /obj/item/organ/genital/penis/get_features(mob/living/carbon/human/H) var/datum/dna/D = H.dna @@ -103,3 +100,4 @@ diameter_ratio = D.features["cock_diameter_ratio"] shape = D.features["cock_shape"] prev_length = length + toggle_visibility(D.features["cock_visibility"], FALSE) \ No newline at end of file diff --git a/modular_citadel/code/modules/arousal/organs/testicles.dm b/modular_citadel/code/modules/arousal/organs/testicles.dm index cf4480ff1f..4264cf5e48 100644 --- a/modular_citadel/code/modules/arousal/organs/testicles.dm +++ b/modular_citadel/code/modules/arousal/organs/testicles.dm @@ -9,7 +9,7 @@ arousal_verb = "Your balls ache a little" unarousal_verb = "Your balls finally stop aching, again" linked_organ_slot = ORGAN_SLOT_PENIS - genital_flags = CAN_MASTURBATE_WITH|MASTURBATE_LINKED_ORGAN|GENITAL_FUID_PRODUCTION + genital_flags = CAN_MASTURBATE_WITH|MASTURBATE_LINKED_ORGAN|GENITAL_FUID_PRODUCTION|UPDATE_OWNER_APPEARANCE|GENITAL_UNDIES_HIDDEN var/size_name = "average" shape = DEF_BALLS_SHAPE fluid_id = /datum/reagent/consumable/semen @@ -53,9 +53,6 @@ icon_state += "_s" else color = "#[owner.dna.features["balls_color"]]" - if(ishuman(owner)) - var/mob/living/carbon/human/H = owner - H.update_genitals() /obj/item/organ/genital/testicles/get_features(mob/living/carbon/human/H) var/datum/dna/D = H.dna @@ -64,8 +61,7 @@ else color = "#[D.features["balls_color"]]" shape = D.features["balls_shape"] - if(D.features["balls_shape"] == "Hidden") - ENABLE_BITFIELD(genital_flags, GENITAL_INTERNAL) fluid_rate = D.features["balls_cum_rate"] fluid_mult = D.features["balls_cum_mult"] fluid_efficiency = D.features["balls_efficiency"] + toggle_visibility(D.features["balls_visibility"], FALSE) \ No newline at end of file diff --git a/modular_citadel/code/modules/arousal/organs/vagina.dm b/modular_citadel/code/modules/arousal/organs/vagina.dm index 91c3b8b8e9..f7e8eddcbd 100644 --- a/modular_citadel/code/modules/arousal/organs/vagina.dm +++ b/modular_citadel/code/modules/arousal/organs/vagina.dm @@ -7,7 +7,7 @@ slot = "vagina" size = 1 //There is only 1 size right now shape = DEF_VAGINA_SHAPE - genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE + genital_flags = CAN_MASTURBATE_WITH|CAN_CLIMAX_WITH|GENITAL_CAN_AROUSE|GENITAL_UNDIES_HIDDEN masturbation_verb = "finger" arousal_verb = "You feel wetness on your crotch" unarousal_verb = "You no longer feel wet" @@ -70,3 +70,4 @@ else color = "[D.features["vag_color"]]" shape = "[D.features["vag_shape"]]" + toggle_visibility(D.features["vag_visibility"], FALSE) diff --git a/modular_citadel/code/modules/client/preferences.dm b/modular_citadel/code/modules/client/preferences.dm index f1dbe31d02..8c55f2d9a8 100644 --- a/modular_citadel/code/modules/client/preferences.dm +++ b/modular_citadel/code/modules/client/preferences.dm @@ -45,9 +45,3 @@ else if(L[slot_to_string(slot)] < DEFAULT_SLOT_AMT) return TRUE - -/datum/preferences/copy_to(mob/living/carbon/human/character, icon_updates = 1) - ..() - character.give_genitals(TRUE) - if(icon_updates) - character.update_genitals() From c1e13a83fbba9c814e863ff754e9bb3dab92ccaa Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 03:35:29 +0100 Subject: [PATCH 02/75] Boom. --- code/__DEFINES/misc.dm | 19 ++++--- code/modules/client/preferences_savefile.dm | 51 +++++++++++++++++-- .../code/modules/arousal/genitals.dm | 15 ++---- .../modules/client/preferences_savefile.dm | 23 --------- 4 files changed, 58 insertions(+), 50 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 3a1e44f053..89cacc1c7b 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -27,15 +27,14 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s //Human Overlays Indexes///////// //LOTS OF CIT CHANGES HERE. BE CAREFUL WHEN UPSTREAM ADDS MORE LAYERS -#define MUTATIONS_LAYER 33 //mutations. Tk headglows, cold resistance glow, etc -#define GENITALS_BEHIND_LAYER 32 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer -#define BODY_BEHIND_LAYER 31 //certain mutantrace features (tail when looking south) that must appear behind the body parts -#define BODYPARTS_LAYER 30 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag -#define MARKING_LAYER 29 //Matrixed body markings because clashing with snouts? -#define BODY_ADJ_LAYER 28 //certain mutantrace features (snout, body markings) that must appear above the body parts -#define GENITALS_FRONT_LAYER 27 //Draws some genitalia above clothes and the TAUR body if need be. -#define BODY_LAYER 26 //underwear, undershirts, socks, eyes, lips(makeup) -#define GENITALS_NO_UNDIE_LAYER 25 //found above undergarments. +#define MUTATIONS_LAYER 32 //mutations. Tk headglows, cold resistance glow, etc +#define GENITALS_BEHIND_LAYER 31 //Some genitalia needs to be behind everything, such as with taurs (Taurs use body_behind_layer +#define BODY_BEHIND_LAYER 30 //certain mutantrace features (tail when looking south) that must appear behind the body parts +#define BODYPARTS_LAYER 29 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag +#define MARKING_LAYER 28 //Matrixed body markings because clashing with snouts? +#define BODY_ADJ_LAYER 27 //certain mutantrace features (snout, body markings) that must appear above the body parts +#define GENITALS_FRONT_LAYER 26 //Draws some genitalia above clothes and the TAUR body if need be. +#define BODY_LAYER 25 //underwear, undershirts, socks, eyes, lips(makeup) #define FRONT_MUTATIONS_LAYER 24 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) #define DAMAGE_LAYER 23 //damage indicators (cuts and burns) #define UNIFORM_LAYER 22 @@ -60,7 +59,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s #define HANDS_LAYER 3 #define BODY_FRONT_LAYER 2 #define FIRE_LAYER 1 //If you're on fire -#define TOTAL_LAYERS 33 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; +#define TOTAL_LAYERS 32 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; //Human Overlay Index Shortcuts for alternate_worn_layer, layers //Because I *KNOW* somebody will think layer+1 means "above" diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 69b8b5685f..76fc40b115 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 26 +#define SAVEFILE_VERSION_MAX 27 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -145,6 +145,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(features["meat_type"] == "Inesct") features["meat_type"] = "Insect" + if(current_version < 27) + var/tennis + S["feature_balls_shape"] >> tennis + if(tennis == "Hidden") + features["balls_visibility"] = GEN_VISIBLE_NEVER + /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) return @@ -447,22 +453,24 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_cock_color"] >> features["cock_color"] S["feature_cock_length"] >> features["cock_length"] S["feature_cock_diameter"] >> features["cock_diameter"] - S["feature_has_sheath"] >> features["sheath_color"] + S["feature_cock_visibility"] >> features["cock_visibility"] //balls features S["feature_has_balls"] >> features["has_balls"] S["feature_balls_color"] >> features["balls_color"] S["feature_balls_size"] >> features["balls_size"] - S["feature_balls_shape"] >> features["balls_shape"] + S["feature_balls_visibility"] >> features["balls_visibility"] //breasts features S["feature_has_breasts"] >> features["has_breasts"] S["feature_breasts_size"] >> features["breasts_size"] S["feature_breasts_shape"] >> features["breasts_shape"] S["feature_breasts_color"] >> features["breasts_color"] S["feature_breasts_producing"] >> features["breasts_producing"] + S["feature_breasts_visibility"] >> features["breasts_visibility"] //vagina features S["feature_has_vag"] >> features["has_vag"] S["feature_vag_shape"] >> features["vag_shape"] S["feature_vag_color"] >> features["vag_color"] + S["feature_vag_visibility"] >> features["vag_visibility"] //womb features S["feature_has_womb"] >> features["has_womb"] //flavor text @@ -549,14 +557,18 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car var/static/list/B_sizes if(!B_sizes) - B_sizes = CONFIG_GET(keyed_list/breasts_cups_prefs) - B_sizes = B_sizes.Copy() + var/list/L = CONFIG_GET(keyed_list/breasts_cups_prefs) + B_sizes = L.Copy() var/static/min_D if(!min_D) min_D = CONFIG_GET(number/penis_min_inches_prefs) var/static/max_D if(!max_D) max_D = CONFIG_GET(number/penis_max_inches_prefs) + var/static/safe_visibilities + if(!safe_visibilities) + var/list/L = CONFIG_GET(keyed_list/safe_visibility_toggles) + safe_visibilities = L.Copy() features["breasts_size"] = sanitize_inlist(features["breasts_size"], B_sizes, BREASTS_SIZE_DEF) features["cock_length"] = sanitize_integer(features["cock_length"], min_D, max_D, COCK_SIZE_DEF) @@ -568,6 +580,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car features["cock_color"] = sanitize_hexcolor(features["cock_color"], 3, FALSE, "FFF") features["balls_color"] = sanitize_hexcolor(features["balls_color"], 3, FALSE, "FFF") features["vag_color"] = sanitize_hexcolor(features["vag_color"], 3, FALSE, "FFF") + features["breasts_visibility"] = sanitize_inlist(features["breasts_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES) + features["cock_visibility"] = sanitize_inlist(features["cock_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES) + features["balls_visibility"] = sanitize_inlist(features["balls_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES) + features["vag_visibility"] = sanitize_inlist(features["vag_visibility"], safe_visibilities, GEN_VISIBLE_NO_UNDIES) + features["flavor_text"] = copytext(features["flavor_text"], 1, MAX_FLAVOR_LEN) @@ -648,6 +665,30 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["feature_insect_markings"] , features["insect_markings"]) WRITE_FILE(S["feature_meat"] , features["meat_type"]) + WRITE_FILE(S["feature_has_cock"], features["has_cock"]) + WRITE_FILE(S["feature_cock_shape"], features["cock_shape"]) + WRITE_FILE(S["feature_cock_color"], features["cock_color"]) + WRITE_FILE(S["feature_cock_length"], features["cock_length"]) + WRITE_FILE(S["feature_cock_visibility"], features["cock_visibility"]) + + WRITE_FILE(S["feature_has_balls"], features["has_balls"]) + WRITE_FILE(S["feature_balls_color"], features["balls_color"]) + WRITE_FILE(S["feature_balls_size"], features["balls_size"]) + WRITE_FILE(S["feature_balls_visibility"], features["balls_visibility"]) + + WRITE_FILE(S["feature_has_breasts"], features["has_breasts"]) + WRITE_FILE(S["feature_breasts_size"], features["breasts_size"]) + WRITE_FILE(S["feature_breasts_shape"], features["breasts_shape"]) + WRITE_FILE(S["feature_breasts_color"], features["breasts_color"]) + WRITE_FILE(S["feature_breasts_producing"], features["breasts_producing"]) + WRITE_FILE(S["feature_breasts_visibility"], features["breasts_visibility"]) + + WRITE_FILE(S["feature_has_vag"], features["has_vag"]) + WRITE_FILE(S["feature_vag_shape"], features["vag_shape"]) + WRITE_FILE(S["feature_vag_color"], features["vag_color"]) + WRITE_FILE(S["feature_vag_visibility"], features["vag_visibility"]) + + WRITE_FILE(S["feature_has_womb"], features["has_womb"]) //Custom names for(var/custom_name_id in GLOB.preferences_custom_names) diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index 87379274b6..74a05488fa 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -265,7 +265,6 @@ var/list/gen_index[GENITAL_LAYER_INDEX_LENGTH] var/list/genitals_to_add var/list/fully_exposed - var/list/somewhat_exposed for(var/obj/item/organ/genital/G in internal_organs) if(G.is_exposed()) //Checks appropriate clothing slot and if it's through_clothes LAZYADD(gen_index[G.layer_index], G) @@ -316,13 +315,9 @@ genital_overlay.icon_state = "[G.slot]_[S.icon_state]_[size][dna.species.use_skintones ? "_s" : ""]_[aroused_state]_[layertext]" - if(layers_num[layer] == GENITALS_FRONT_LAYER) - if(G.genital_flags & GENITAL_THROUGH_CLOTHES) - genital_overlay.layer = -GENITALS_EXPOSED_LAYER - LAZYADD(fully_exposed, genital_overlay) - else if(!(G.genital_flags & GENITAL_UNDIES_HIDDEN)) - genital_overlay.layer = -GENITALS_NO_UNDIE_LAYER - LAZYADD(somewhat_exposed, genital_overlay) + if(layers_num[layer] == GENITALS_FRONT_LAYER && G.genital_flags & GENITAL_THROUGH_CLOTHES) + genital_overlay.layer = -GENITALS_EXPOSED_LAYER + LAZYADD(fully_exposed, genital_overlay) else genital_overlay.layer = -layers_num[layer] standing += genital_overlay @@ -334,10 +329,6 @@ overlays_standing[GENITALS_EXPOSED_LAYER] = fully_exposed apply_overlay(GENITALS_EXPOSED_LAYER) - if(LAZYLEN(somewhat_exposed)) - overlays_standing[GENITALS_NO_UNDIE_LAYER] = somewhat_exposed - apply_overlay(GENITALS_NO_UNDIE_LAYER) - for(var/L in relevant_layers) apply_overlay(layers_num[L]) diff --git a/modular_citadel/code/modules/client/preferences_savefile.dm b/modular_citadel/code/modules/client/preferences_savefile.dm index 80e20c9f48..d9b902656f 100644 --- a/modular_citadel/code/modules/client/preferences_savefile.dm +++ b/modular_citadel/code/modules/client/preferences_savefile.dm @@ -44,29 +44,6 @@ WRITE_FILE(S["feature_xeno_tail"], features["xenotail"]) WRITE_FILE(S["feature_xeno_dors"], features["xenodorsal"]) WRITE_FILE(S["feature_xeno_head"], features["xenohead"]) - //cock features - WRITE_FILE(S["feature_has_cock"], features["has_cock"]) - WRITE_FILE(S["feature_cock_shape"], features["cock_shape"]) - WRITE_FILE(S["feature_cock_color"], features["cock_color"]) - WRITE_FILE(S["feature_cock_length"], features["cock_length"]) - WRITE_FILE(S["feature_cock_girth"], features["cock_girth"]) - //balls features - WRITE_FILE(S["feature_has_balls"], features["has_balls"]) - WRITE_FILE(S["feature_balls_color"], features["balls_color"]) - WRITE_FILE(S["feature_balls_size"], features["balls_size"]) - WRITE_FILE(S["feature_balls_shape"], features["balls_shape"]) - //breasts features - WRITE_FILE(S["feature_has_breasts"], features["has_breasts"]) - WRITE_FILE(S["feature_breasts_size"], features["breasts_size"]) - WRITE_FILE(S["feature_breasts_shape"], features["breasts_shape"]) - WRITE_FILE(S["feature_breasts_color"], features["breasts_color"]) - WRITE_FILE(S["feature_breasts_producing"], features["breasts_producing"]) - //vagina features - WRITE_FILE(S["feature_has_vag"], features["has_vag"]) - WRITE_FILE(S["feature_vag_shape"], features["vag_shape"]) - WRITE_FILE(S["feature_vag_color"], features["vag_color"]) - //womb features - WRITE_FILE(S["feature_has_womb"], features["has_womb"]) //flavor text WRITE_FILE(S["feature_flavor_text"], features["flavor_text"]) From edfc77fc2a58d723db8f89a9b46d219a6bd6412c Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 04:18:01 +0100 Subject: [PATCH 03/75] Fixes cold movespeed slowdown affecting floating mobs (no gravity). --- code/modules/mob/living/carbon/human/species.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index d464419b73..a4d0c36ddc 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -2050,7 +2050,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot") SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "cold", /datum/mood_event/cold) //Sorry for the nasty oneline but I don't want to assign a variable on something run pretty frequently - H.add_movespeed_modifier(MOVESPEED_ID_COLD, override = TRUE, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR)) + H.add_movespeed_modifier(MOVESPEED_ID_COLD, override = TRUE, multiplicative_slowdown = ((BODYTEMP_COLD_DAMAGE_LIMIT - H.bodytemperature) / COLD_SLOWDOWN_FACTOR), blacklisted_movetypes = FLOATING) switch(H.bodytemperature) if(200 to BODYTEMP_COLD_DAMAGE_LIMIT) H.apply_damage(COLD_DAMAGE_LEVEL_1*coldmod*H.physiology.cold_mod, BURN) From c6b4b5f68626f7bc3db9f44fcb824fb3f9410cde Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 05:17:09 +0100 Subject: [PATCH 04/75] lazy fix before I go to sleep. --- .../mob/living/carbon/human/species.dm | 71 +++++++++---------- .../code/modules/arousal/genitals.dm | 2 +- 2 files changed, 35 insertions(+), 38 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index d464419b73..c566e16ad9 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -550,48 +550,45 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //Underwear, Undershirts & Socks if(!(NO_UNDERWEAR in species_traits)) - if(H.socks && H.get_num_legs(FALSE) >= 2) - if(H.hidden_socks) - H.socks = "Nude" - else + if(H.socks && !H.hidden_socks && H.get_num_legs(FALSE) >= 2) + if(H.saved_socks) H.socks = H.saved_socks - var/datum/sprite_accessory/underwear/socks/S = GLOB.socks_list[H.socks] - if(S) - var/digilegs = ((DIGITIGRADE in species_traits) && S.has_digitigrade) ? "_d" : "" - var/mutable_appearance/MA = mutable_appearance(S.icon, "[S.icon_state][digilegs]", -BODY_LAYER) - if(S.has_color) - MA.color = "#[H.socks_color]" - standing += MA + H.saved_socks = "" + var/datum/sprite_accessory/underwear/socks/S = GLOB.socks_list[H.socks] + if(S) + var/digilegs = ((DIGITIGRADE in species_traits) && S.has_digitigrade) ? "_d" : "" + var/mutable_appearance/MA = mutable_appearance(S.icon, "[S.icon_state][digilegs]", -BODY_LAYER) + if(S.has_color) + MA.color = "#[H.socks_color]" + standing += MA - if(H.underwear) - if(H.hidden_underwear) - H.underwear = "Nude" - else + if(H.underwear && !H.hidden_underwear) + if(H.saved_underwear) H.underwear = H.saved_underwear - var/datum/sprite_accessory/underwear/bottom/B = GLOB.underwear_list[H.underwear] - if(B) - var/digilegs = ((DIGITIGRADE in species_traits) && B.has_digitigrade) ? "_d" : "" - var/mutable_appearance/MA = mutable_appearance(B.icon, "[B.icon_state][digilegs]", -BODY_LAYER) - if(B.has_color) - MA.color = "#[H.undie_color]" - standing += MA + H.saved_underwear = "" + var/datum/sprite_accessory/underwear/bottom/B = GLOB.underwear_list[H.underwear] + if(B) + var/digilegs = ((DIGITIGRADE in species_traits) && B.has_digitigrade) ? "_d" : "" + var/mutable_appearance/MA = mutable_appearance(B.icon, "[B.icon_state][digilegs]", -BODY_LAYER) + if(B.has_color) + MA.color = "#[H.undie_color]" + standing += MA - if(H.undershirt) - if(H.hidden_undershirt) - H.undershirt = "Nude" - else + if(H.undershirt && !H.hidden_undershirt) + if(H.saved_undershirt) H.undershirt = H.saved_undershirt - var/datum/sprite_accessory/underwear/top/T = GLOB.undershirt_list[H.undershirt] - if(T) - var/state = "[T.icon_state][((DIGITIGRADE in species_traits) && T.has_digitigrade) ? "_d" : ""]" - var/mutable_appearance/MA - if(H.dna.species.sexes && H.dna.features["body_model"] == FEMALE) - MA = wear_female_version(state, T.icon, BODY_LAYER) - else - MA = mutable_appearance(T.icon, state, -BODY_LAYER) - if(T.has_color) - MA.color = "#[H.shirt_color]" - standing += MA + H.saved_undershirt = "" + var/datum/sprite_accessory/underwear/top/T = GLOB.undershirt_list[H.undershirt] + if(T) + var/state = "[T.icon_state][((DIGITIGRADE in species_traits) && T.has_digitigrade) ? "_d" : ""]" + var/mutable_appearance/MA + if(H.dna.species.sexes && H.dna.features["body_model"] == FEMALE) + MA = wear_female_version(state, T.icon, BODY_LAYER) + else + MA = mutable_appearance(T.icon, state, -BODY_LAYER) + if(T.has_color) + MA.color = "#[H.shirt_color]" + standing += MA if(standing.len) H.overlays_standing[BODY_LAYER] = standing diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index 74a05488fa..f65267aa39 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -59,7 +59,7 @@ if(!(NO_UNDERWEAR in H.dna.species.species_traits)) var/datum/sprite_accessory/underwear/top/T = GLOB.undershirt_list[H.undershirt] var/datum/sprite_accessory/underwear/bottom/B = GLOB.underwear_list[H.underwear] - if(zone == BODY_ZONE_CHEST ? (H.hidden_undershirt || T?.covers_chest || B?.covers_chest) : (H.hidden_underwear || T?.covers_groin || B?.covers_groin)) + if(zone == BODY_ZONE_CHEST ? (!H.hidden_undershirt && (T?.covers_chest || B?.covers_chest)) : (!H.hidden_underwear && (T?.covers_groin || B?.covers_groin))) return FALSE if(genital_flags & GENITAL_THROUGH_CLOTHES) return TRUE From 91aad127dd3045436fdf99cd015f7ef8f6f53826 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 13:54:41 +0100 Subject: [PATCH 05/75] Quick webedit fixing an issue with the split personality. --- code/datums/brain_damage/split_personality.dm | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm index 6586a065d0..1115a878f8 100644 --- a/code/datums/brain_damage/split_personality.dm +++ b/code/datums/brain_damage/split_personality.dm @@ -20,6 +20,7 @@ ..() make_backseats() get_ghost() + RegisterSignal(M, COMSIG_MOB_DEATH, .proc/revert_to_normal) /datum/brain_trauma/severe/split_personality/proc/make_backseats() stranger_backseat = new(owner, src) @@ -37,23 +38,23 @@ qdel(src) /datum/brain_trauma/severe/split_personality/on_life() - if(owner.stat == DEAD) - if(current_controller != OWNER) - switch_personalities() - qdel(src) - else if(prob(3)) + if(prob(3)) switch_personalities() ..() /datum/brain_trauma/severe/split_personality/on_lose() if(current_controller != OWNER) //it would be funny to cure a guy only to be left with the other personality, but it seems too cruel - switch_personalities() + switch_personalities(TRUE) QDEL_NULL(stranger_backseat) QDEL_NULL(owner_backseat) + UnregisterSignal(M, COMSIG_MOB_DEATH) ..() -/datum/brain_trauma/severe/split_personality/proc/switch_personalities() - if(QDELETED(owner) || owner.stat == DEAD || QDELETED(stranger_backseat) || QDELETED(owner_backseat)) +/datum/brain_trauma/severe/split_personality/proc/revert_to_normal() + qdel(src) + +/datum/brain_trauma/severe/split_personality/proc/switch_personalities(forced = FALSE) + if(QDELETED(owner) || (owner.stat == DEAD && !forced) || QDELETED(stranger_backseat) || QDELETED(owner_backseat)) return var/mob/living/split_personality/current_backseat @@ -126,10 +127,6 @@ if(QDELETED(body)) qdel(src) //in case trauma deletion doesn't already do it - if((body.stat == DEAD && trauma.owner_backseat == src)) - trauma.switch_personalities() - qdel(trauma) - //if one of the two ghosts, the other one stays permanently if(!body.client && trauma.initialized) trauma.switch_personalities() From c05d2c1572d6ba83f4fe402dcf8790313cfd9f8a Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 17:08:09 +0100 Subject: [PATCH 06/75] Making it actually work. --- code/modules/client/preferences.dm | 8 +++--- .../code/modules/arousal/genitals.dm | 27 ++++++++++++------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 1b280baa56..424b913ece 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -761,7 +761,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "    Change
" dat += "Penis Shape: [features["cock_shape"]]" dat += "Penis Length: [features["cock_length"]] inch(es)" - dat += "Penis Visibility:[features["cock_visibility"]]" + dat += "Penis Visibility:[features["cock_visibility"]]" dat += "Has Testicles:[features["has_balls"] == TRUE ? "Yes" : "No"]" if(features["has_balls"]) if(pref_species.use_skintones && features["genitals_use_skintone"] == TRUE) @@ -770,7 +770,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else dat += "Testicles Color:
" dat += "    Change
" - dat += "Testicles Visibility:[features["balls_visibility"]]" + dat += "Testicles Visibility:[features["balls_visibility"]]" dat += APPEARANCE_CATEGORY_COLUMN dat += "

Vagina

" dat += "[features["has_vag"] == TRUE ? "Yes" : "No"]" @@ -782,7 +782,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else dat += "Vagina Color:
" dat += "    Change
" - dat += "Vagina Visibility:[features["vag_visibility"]]" + dat += "Vagina Visibility:[features["vag_visibility"]]" dat += "Has Womb:[features["has_womb"] == TRUE ? "Yes" : "No"]" dat += "" dat += APPEARANCE_CATEGORY_COLUMN @@ -797,7 +797,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "    Change
" dat += "Cup Size:[features["breasts_size"]]" dat += "Breasts Shape:[features["breasts_shape"]]" - dat += "Breasts Visibility:[features["breasts_visibility"]]" + dat += "Breasts Visibility:[features["breasts_visibility"]]" dat += "Lactates:[features["breasts_producing"] == TRUE ? "Yes" : "No"]" dat += "" dat += "" diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index f65267aa39..8d505fd06c 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -57,9 +57,9 @@ if(genital_flags & GENITAL_UNDIES_HIDDEN && ishuman(owner)) var/mob/living/carbon/human/H = owner if(!(NO_UNDERWEAR in H.dna.species.species_traits)) - var/datum/sprite_accessory/underwear/top/T = GLOB.undershirt_list[H.undershirt] - var/datum/sprite_accessory/underwear/bottom/B = GLOB.underwear_list[H.underwear] - if(zone == BODY_ZONE_CHEST ? (!H.hidden_undershirt && (T?.covers_chest || B?.covers_chest)) : (!H.hidden_underwear && (T?.covers_groin || B?.covers_groin))) + var/datum/sprite_accessory/underwear/top/T = H.hidden_undershirt ? null : GLOB.undershirt_list[H.undershirt] + var/datum/sprite_accessory/underwear/bottom/B = H.hidden_underwear ? null : GLOB.underwear_list[H.underwear] + if(zone == BODY_ZONE_CHEST ? (T?.covers_chest || B?.covers_chest) : (!T?.covers_groin || B?.covers_groin)) return FALSE if(genital_flags & GENITAL_THROUGH_CLOTHES) return TRUE @@ -72,17 +72,19 @@ /obj/item/organ/genital/proc/toggle_visibility(visibility, update = TRUE) genital_flags &= ~(GENITAL_THROUGH_CLOTHES|GENITAL_HIDDEN|GENITAL_UNDIES_HIDDEN) - owner.exposed_genitals -= src + if(owner) + owner.exposed_genitals -= src switch(visibility) if(GEN_VISIBLE_ALWAYS) genital_flags |= GENITAL_THROUGH_CLOTHES - owner.exposed_genitals += src + if(owner) + owner.exposed_genitals += src if(GEN_VISIBLE_NO_UNDIES) genital_flags |= GENITAL_UNDIES_HIDDEN if(GEN_VISIBLE_NEVER) genital_flags |= GENITAL_HIDDEN - if(update && ishuman(owner)) //recast to use update genitals proc + if(update && owner && ishuman(owner)) //recast to use update genitals proc var/mob/living/carbon/human/H = owner H.update_genitals() @@ -191,14 +193,19 @@ if(.) update() RegisterSignal(owner, COMSIG_MOB_DEATH, .proc/update_appearance) + if(genital_flags & GENITAL_THROUGH_CLOTHES) + owner.exposed_genitals += src /obj/item/organ/genital/Remove(special = FALSE) . = ..() - var/mob/living/carbon/human/H = . + var/mob/living/carbon/C = . update() - if(!QDELETED(H)) - UnregisterSignal(H, COMSIG_MOB_DEATH) - H.update_genitals() + if(!QDELETED(C)) + if(genital_flags & UPDATE_OWNER_APPEARANCE && ishuman(C)) + var/mob/living/carbon/human/H = . + H.update_genitals() + C.exposed_genitals -= src + UnregisterSignal(C, COMSIG_MOB_DEATH) //proc to give a player their genitals and stuff when they log in /mob/living/carbon/human/proc/give_genitals(clean = FALSE)//clean will remove all pre-existing genitals. proc will then give them any genitals that are enabled in their DNA From ddf4d759bdc5dbda4ef6f290ca6060dd2d5887f7 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 17:25:23 +0100 Subject: [PATCH 07/75] Now locally tested too and it works fine. --- modular_citadel/code/modules/arousal/genitals.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/arousal/genitals.dm b/modular_citadel/code/modules/arousal/genitals.dm index 8d505fd06c..7705dcafd1 100644 --- a/modular_citadel/code/modules/arousal/genitals.dm +++ b/modular_citadel/code/modules/arousal/genitals.dm @@ -59,7 +59,7 @@ if(!(NO_UNDERWEAR in H.dna.species.species_traits)) var/datum/sprite_accessory/underwear/top/T = H.hidden_undershirt ? null : GLOB.undershirt_list[H.undershirt] var/datum/sprite_accessory/underwear/bottom/B = H.hidden_underwear ? null : GLOB.underwear_list[H.underwear] - if(zone == BODY_ZONE_CHEST ? (T?.covers_chest || B?.covers_chest) : (!T?.covers_groin || B?.covers_groin)) + if(zone == BODY_ZONE_CHEST ? (T?.covers_chest || B?.covers_chest) : (T?.covers_groin || B?.covers_groin)) return FALSE if(genital_flags & GENITAL_THROUGH_CLOTHES) return TRUE From e4550efb39b2b9f55e94a2a34c718641469e9495 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 17:45:11 +0100 Subject: [PATCH 08/75] Fixing creamed snout overlay a second time. --- code/modules/mob/living/carbon/human/human.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 57667293e7..097788dd7b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -708,7 +708,7 @@ /mob/living/carbon/human/wash_cream() if(creamed) //clean both to prevent a rare bug - cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_lizard")) + cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_snout")) cut_overlay(mutable_appearance('icons/effects/creampie.dmi', "creampie_human")) creamed = FALSE From 36d5d5e14170439d2e9fbbe37c675ed6ce2b28da Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 23:33:50 +0100 Subject: [PATCH 09/75] Antagonists such as wizard and nuke ops are now more anonymous. --- code/__DEFINES/dcs/signals.dm | 1 + code/datums/elements/flavor_text.dm | 9 +++++++++ code/game/objects/structures/crates_lockers/closets.dm | 6 +++--- code/modules/antagonists/_common/antag_datum.dm | 1 + 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 3d76390ce1..0593a3c8f8 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -175,6 +175,7 @@ #define SPEECH_LANGUAGE 5 // #define SPEECH_IGNORE_SPAM 6 // #define SPEECH_FORCED 7 +#define COMSIG_MOB_ANTAG_ON_GAIN "mob_antag_on_gain" //from base of /datum/antagonist/on_gain(): (antag_datum) // /mob/living signals #define COMSIG_LIVING_REGENERATE_LIMBS "living_regenerate_limbs" //from base of /mob/living/regenerate_limbs(): (noheal, excluded_limbs) diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index 373647d6f5..5e0c581ec9 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -114,6 +114,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code //subtypes with additional hooks for DNA and preferences. /datum/element/flavor_text/carbon + //list of antagonists etcetera that should have nothing to do with people's snowflakes. + var/static/list/i_dont_even_know_who_you_are = typecacheof(list(/datum/antagonist/abductor, /datum/antagonist/ert, + /datum/antagonist/nukeop, /datum/antagonist/official, /datum/antagonist/wizard)) /datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE) if(!iscarbon(target)) @@ -144,3 +147,9 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code /datum/element/flavor_text/carbon/proc/unset_flavor(mob/living/carbon/user) texts_by_atom[user] = "" + +/datum/element/flavor_text/carbon/proc/on_antag_gain(mob/living/carbon/user, datum/antagonist/antag) + if(is_type_in_typecache(antag, i_dont_even_know_who_you_are)) + texts_by_atom[user] = "" + if(user.dna) + user.dna.features["flavor_text"] = "" \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index e19feea582..11db7f37c8 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -121,7 +121,7 @@ return FALSE var/turf/T = get_turf(src) for(var/mob/living/L in T) - if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) + if(L.move_resist >= MOVE_FORCE_VERY_STRONG || (horizontal && L.mob_size > MOB_SIZE_TINY && L.density)) if(user) to_chat(user, "There's something large on top of [src], preventing it from opening." ) return FALSE @@ -133,7 +133,7 @@ if(closet != src && !closet.wall_mounted) return FALSE for(var/mob/living/L in T) - if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) + if(L.move_resist >= MOVE_FORCE_VERY_STRONG || horizontal && L.mob_size > MOB_SIZE_TINY && L.density) if(user) to_chat(user, "There's something too large in [src], preventing it from closing.") return FALSE @@ -216,7 +216,7 @@ if(!isliving(AM)) //let's not put ghosts or camera mobs inside closets... return FALSE var/mob/living/L = AM - if(L.anchored || L.buckled || L.incorporeal_move || L.has_buckled_mobs()) + if(L.move_resist >= MOVE_FORCE_VERY_STRONG || L.buckled || L.incorporeal_move || L.has_buckled_mobs()) return FALSE if(L.mob_size > MOB_SIZE_TINY) // Tiny mobs are treated as items. if(horizontal && L.density) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 2e3626dd4c..19845be315 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -75,6 +75,7 @@ GLOBAL_LIST_EMPTY(antagonists) remove_blacklisted_quirks() if(is_banned(owner.current) && replace_banned) replace_banned_player() + SEND_SIGNAL(owner.current, COMSIG_MOB_ANTAG_ON_GAIN, src) /datum/antagonist/proc/is_banned(mob/M) if(!M) From 4a01e59623a987f86b2814303a8aa05eacc9dcf7 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 23:36:31 +0100 Subject: [PATCH 10/75] Signals things. --- code/datums/elements/flavor_text.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index 5e0c581ec9..d34d6946ae 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -125,6 +125,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code if(. == ELEMENT_INCOMPATIBLE) return RegisterSignal(target, COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, .proc/update_dna_flavor_text) + RegisterSignal(target, COMSIG_MOB_ANTAG_ON_GAIN, .proc/on_antag_gain) if(ishuman(target)) RegisterSignal(target, COMSIG_HUMAN_PREFS_COPIED_TO, .proc/update_prefs_flavor_text) RegisterSignal(target, COMSIG_HUMAN_HARDSET_DNA, .proc/update_dna_flavor_text) @@ -132,7 +133,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code /datum/element/flavor_text/carbon/Detach(mob/living/carbon/C) . = ..() - UnregisterSignal(C, list(COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, COMSIG_HUMAN_PREFS_COPIED_TO, COMSIG_HUMAN_HARDSET_DNA, COMSIG_HUMAN_ON_RANDOMIZE)) + UnregisterSignal(C, list(COMSIG_CARBON_IDENTITY_TRANSFERRED_TO, COMSIG_MOB_ANTAG_ON_GAIN, COMSIG_HUMAN_PREFS_COPIED_TO, COMSIG_HUMAN_HARDSET_DNA, COMSIG_HUMAN_ON_RANDOMIZE)) /datum/element/flavor_text/carbon/proc/update_dna_flavor_text(mob/living/carbon/C) texts_by_atom[C] = C.dna.features["flavor_text"] From 1642903ab3c62777fc3236c81d80ed22aa042bf0 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Wed, 25 Mar 2020 23:46:27 +0100 Subject: [PATCH 11/75] Spares the official because they don't have their name replaced. --- code/datums/elements/flavor_text.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/elements/flavor_text.dm b/code/datums/elements/flavor_text.dm index d34d6946ae..ea8e361694 100644 --- a/code/datums/elements/flavor_text.dm +++ b/code/datums/elements/flavor_text.dm @@ -116,7 +116,7 @@ GLOBAL_LIST_EMPTY(mobs_with_editable_flavor_text) //et tu, hacky code /datum/element/flavor_text/carbon //list of antagonists etcetera that should have nothing to do with people's snowflakes. var/static/list/i_dont_even_know_who_you_are = typecacheof(list(/datum/antagonist/abductor, /datum/antagonist/ert, - /datum/antagonist/nukeop, /datum/antagonist/official, /datum/antagonist/wizard)) + /datum/antagonist/nukeop, /datum/antagonist/wizard)) /datum/element/flavor_text/carbon/Attach(datum/target, text = "", _name = "Flavor Text", _addendum, _max_len = MAX_FLAVOR_LEN, _always_show = FALSE, _edit = TRUE) if(!iscarbon(target)) From 17f4b0f34fa5b26846e0d246a3daa5fea47750a2 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Thu, 26 Mar 2020 17:46:41 +0800 Subject: [PATCH 12/75] I assume this works --- code/game/machinery/computer/robot.dm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 9356a8e933..2621616759 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -11,16 +11,19 @@ /obj/machinery/computer/robotics/proc/can_control(mob/user, mob/living/silicon/robot/R) if(!istype(R)) - return 0 + return FALSE if(isAI(user)) if (R.connected_ai != user) - return 0 + return FALSE if(iscyborg(user)) if (R != user) - return 0 + return FALSE if(R.scrambledcodes) - return 0 - return 1 + return FALSE + if (hasSiliconAccessInArea(user) && !issilicon(user)) + if (!Adjacent(user)) + return FALSE + return TRUE /obj/machinery/computer/robotics/ui_interact(mob/user) . = ..() From 4199792576905b34feae5537c8a75904b8933d3d Mon Sep 17 00:00:00 2001 From: bunny232 Date: Thu, 26 Mar 2020 10:45:30 -0400 Subject: [PATCH 13/75] Boxstation secmos is no longer connected to the scrubber loop (#11630) * Update BoxStation.dmm * Update BoxStation.dmm --- _maps/map_files/BoxStation/BoxStation.dmm | 178 +++++++++++----------- 1 file changed, 93 insertions(+), 85 deletions(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 68e9ee8ec0..82bfb49e38 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -53,6 +53,16 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/space/nearstation) +"aah" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) "aai" = ( /turf/closed/wall/r_wall, /area/security/prison) @@ -1541,6 +1551,18 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solar/port/fore) +"adB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) "adC" = ( /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -2665,6 +2687,20 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/brig) +"afo" = ( +/obj/structure/noticeboard{ + dir = 1; + pixel_y = -27 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) "afp" = ( /obj/docking_port/stationary{ dir = 4; @@ -3143,6 +3179,20 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"agl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) "agm" = ( /obj/machinery/light{ dir = 8 @@ -3321,6 +3371,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/main) +"agD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) "agE" = ( /obj/structure/table, /obj/item/storage/fancy/donut_box{ @@ -3332,6 +3391,13 @@ }, /turf/open/floor/plasteel, /area/security/main) +"agF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "agG" = ( /obj/machinery/airalarm{ dir = 8; @@ -3436,6 +3502,10 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"agN" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/courtroom) "agO" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Infirmary"; @@ -3467,6 +3537,19 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"agQ" = ( +/obj/machinery/light_switch{ + pixel_y = 28 + }, +/obj/structure/closet/secure_closet/courtroom, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/sign/warning/securearea{ + pixel_x = -32 + }, +/obj/item/gavelhammer, +/obj/machinery/atmospherics/pipe/simple/scrubbers, +/turf/open/floor/plasteel, +/area/security/courtroom) "agR" = ( /obj/effect/turf_decal/loading_area{ dir = 4; @@ -3888,16 +3971,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"ahC" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/main) "ahD" = ( /obj/structure/chair, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -4202,21 +4275,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/showroomfloor, /area/security/brig) -"aia" = ( -/obj/structure/noticeboard{ - dir = 1; - pixel_y = -27 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) "aib" = ( /obj/structure/cable{ icon_state = "2-8" @@ -4556,19 +4614,6 @@ }, /turf/open/floor/plating, /area/maintenance/fore/secondary) -"aiB" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/chair/sofa/right{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/main) "aiC" = ( /obj/structure/cable{ icon_state = "1-4" @@ -4729,10 +4774,6 @@ /obj/effect/turf_decal/box, /turf/open/floor/plasteel/dark, /area/security/brig) -"aiP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, -/area/security/main) "aiQ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -4847,18 +4888,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, /area/security/brig) -"ajh" = ( -/obj/machinery/light_switch{ - pixel_y = 28 - }, -/obj/structure/closet/secure_closet/courtroom, -/obj/effect/decal/cleanable/cobweb, -/obj/structure/sign/warning/securearea{ - pixel_x = -32 - }, -/obj/item/gavelhammer, -/turf/open/floor/plasteel, -/area/security/courtroom) "aji" = ( /obj/structure/chair{ name = "Judge" @@ -5126,12 +5155,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, /area/security/brig) -"ajM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/courtroom) "ajN" = ( /obj/structure/cable{ icon_state = "4-8" @@ -5286,16 +5309,6 @@ }, /turf/open/floor/plating, /area/construction/mining/aux_base) -"aka" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) "akb" = ( /obj/machinery/light{ dir = 8 @@ -5609,11 +5622,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/brig) -"akE" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) "akF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/red, @@ -91862,11 +91870,11 @@ adl aet agy aha -ahC -aia -aiP -aka -akE +aah +afo +adR +agD +agF gyr alq amd @@ -92633,11 +92641,11 @@ aff aeU ajA akd -ahF -aiB -abp -ajh -ajM +adB +agl +uHp +agQ +agN akw alb alG From 02f7aff68061fd943d9bebade2fa9ea3e72a3ac6 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 26 Mar 2020 09:45:33 -0500 Subject: [PATCH 14/75] Automatic changelog generation for PR #11630 [ci skip] --- html/changelogs/AutoChangeLog-pr-11630.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11630.yml diff --git a/html/changelogs/AutoChangeLog-pr-11630.yml b/html/changelogs/AutoChangeLog-pr-11630.yml new file mode 100644 index 0000000000..c65ecfe3bd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11630.yml @@ -0,0 +1,4 @@ +author: "bunny232" +delete-after: True +changes: + - bugfix: "Box secmos now is now longer connected to the scrubber loop" From 75a9bc0b80b7c7716a0daf30e131484c442eb328 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 26 Mar 2020 15:54:02 +0100 Subject: [PATCH 15/75] Update bloodsucker.dm --- code/game/gamemodes/bloodsucker/bloodsucker.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm index a45e989318..9515d6063c 100644 --- a/code/game/gamemodes/bloodsucker/bloodsucker.dm +++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm @@ -19,7 +19,7 @@ antag_flag = ROLE_BLOODSUCKER false_report_weight = 1 restricted_jobs = list("AI","Cyborg") - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + protected_jobs = list("Chaplain", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") required_players = 20 required_enemies = 2 recommended_enemies = 4 From 8e54cbe364b45ea5b76b87264d41a00b179b1496 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 26 Mar 2020 15:54:38 +0100 Subject: [PATCH 16/75] Update dynamic_rulesets_roundstart.dm --- code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 8b44abbe03..a7fc9b86ce 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -805,7 +805,7 @@ antag_flag = ROLE_BLOODSUCKER antag_datum = ANTAG_DATUM_BLOODSUCKER minimum_required_age = 0 - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + protected_roles = list("Chaplain", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") restricted_roles = list("Cyborg", "AI") required_candidates = 1 weight = 2 From 8bd238c87c38af065e0dfb13cd7ded852540652f Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 26 Mar 2020 11:49:49 -0400 Subject: [PATCH 17/75] Reblances flares, flashlights and eye-lights (#11404) * Update flashlight.dm * makes the torch be enlightend * Update flashlight.dm * Update code/game/objects/items/devices/flashlight.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> * >makes atmo pipes small items >makes heavy duty flashlight lightweight > muh realism Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/game/objects/items/devices/flashlight.dm | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index bf023c2c07..29a31122bf 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -170,7 +170,7 @@ flags_1 = CONDUCT_1 brightness_on = 2 light_color = "#FFDDCC" - flashlight_power = 0.3 + flashlight_power = 0.5 var/holo_cooldown = 0 /obj/item/flashlight/pen/afterattack(atom/target, mob/user, proximity_flag) @@ -227,15 +227,12 @@ custom_materials = null on = TRUE - // green-shaded desk lamp /obj/item/flashlight/lamp/green desc = "A classic green-shaded desk lamp." icon_state = "lampgreen" item_state = "lampgreen" - - /obj/item/flashlight/lamp/verb/toggle_light() set name = "Toggle light" set category = "Object" @@ -258,12 +255,13 @@ desc = "A red Nanotrasen issued flare. There are instructions on the side, it reads 'pull cord, make light'." w_class = WEIGHT_CLASS_SMALL brightness_on = 7 // Pretty bright. + total_mass = 0.8 light_color = "#FA421A" icon_state = "flare" item_state = "flare" actions_types = list() var/fuel = 0 - var/on_damage = 7 + var/on_damage = 9 var/produce_heat = 1500 heat = 1000 light_color = LIGHT_COLOR_FLARE @@ -331,14 +329,15 @@ name = "torch" desc = "A torch fashioned from some leaves and a log." w_class = WEIGHT_CLASS_BULKY - brightness_on = 4 + brightness_on = 6 //When on were like a lantern light_color = "#FAA44B" icon_state = "torch" item_state = "torch" lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' righthand_file = 'icons/mob/inhands/items_righthand.dmi' light_color = LIGHT_COLOR_ORANGE - on_damage = 10 + total_mass = TOTAL_MASS_NORMAL_ITEM + on_damage = 12 //Its a log thats on fire slot_flags = null /obj/item/flashlight/lantern @@ -348,10 +347,9 @@ lefthand_file = 'icons/mob/inhands/equipment/mining_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/mining_righthand.dmi' desc = "A mining lantern." - brightness_on = 6 // luminosity when on + brightness_on = 6 // luminosity when on light_color = "#FFAA44" - flashlight_power = 0.75 - + flashlight_power = 0.8 /obj/item/flashlight/slime gender = PLURAL @@ -372,7 +370,6 @@ var/emp_cur_charges = 4 var/charge_tick = 0 - /obj/item/flashlight/emp/New() ..() START_PROCESSING(SSobj, src) @@ -435,7 +432,7 @@ var/fuel = 0 /obj/item/flashlight/glowstick/Initialize() - fuel = rand(1600, 2000) + fuel = rand(1000, 1500) light_color = color . = ..() @@ -540,7 +537,7 @@ /obj/item/flashlight/eyelight name = "eyelight" desc = "This shouldn't exist outside of someone's head, how are you seeing this?" - brightness_on = 15 + brightness_on = 10 flags_1 = CONDUCT_1 item_flags = DROPDEL actions_types = list() From 9ab89ddcea7605ae8326e3d44e1321888f384f67 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 26 Mar 2020 10:49:52 -0500 Subject: [PATCH 18/75] Automatic changelog generation for PR #11404 [ci skip] --- html/changelogs/AutoChangeLog-pr-11404.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11404.yml diff --git a/html/changelogs/AutoChangeLog-pr-11404.yml b/html/changelogs/AutoChangeLog-pr-11404.yml new file mode 100644 index 0000000000..18e0145b34 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11404.yml @@ -0,0 +1,8 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - balance: "torches take less staminda to use." + - balance: "Glowsticks dont last as long" + - balance: "Penlights are better at being lights" + - balance: "Torches are brighter then before - Indian Johns want to be on lava land rejoy!" + - balance: "Eye lights have 30% less light coming out of them." From 0bf2cf04848aeae7a2288d7ff408eeefe251e6a5 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 26 Mar 2020 11:51:48 -0400 Subject: [PATCH 19/75] Adds a lfwb-inspired orbiting pixel + flashing outline animation to the sprint and combat buttons (toggleable via prefs) (#11623) * Adds a flashing effect to the sprint and combat mode toggles (toggleable via prefs) * Adds the ability to change the color of the hud toggle flash as well --- code/modules/client/preferences.dm | 14 ++++++++++++++ code/modules/client/preferences_savefile.dm | 7 ++++++- code/modules/mob/living/living_combat.dm | 2 +- code/modules/mob/living/living_sprint.dm | 2 +- icons/mob/screen_gen.dmi | Bin 116168 -> 118425 bytes .../code/_onclick/hud/screen_objects.dm | 14 ++++++++++++++ modular_citadel/code/_onclick/hud/sprint.dm | 14 ++++++++++++++ 7 files changed, 50 insertions(+), 3 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index ecff37c1f3..e1ecb81ab6 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -187,6 +187,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/sprint_spacebar = FALSE var/sprint_toggle = FALSE + var/hud_toggle_flash = TRUE + var/hud_toggle_color = "#ffffff" + var/list/exp = list() var/list/menuoptions @@ -902,6 +905,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Fit Viewport: [auto_fit_viewport ? "Auto" : "Manual"]
" dat += "Sprint Key: [sprint_spacebar ? "Space" : "Shift"]
" dat += "Toggle Sprint: [sprint_toggle ? "Enabled" : "Disabled"]
" + dat += "HUD Button Flashes: [hud_toggle_flash ? "Enabled" : "Disabled"]
" + dat += "HUD Button Flash Color:     Change
" if (CONFIG_GET(flag/maprotation) && CONFIG_GET(flag/tgstyle_maprotation)) var/p_map = preferred_map @@ -2075,6 +2080,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(pickedPDASkin) pda_skin = pickedPDASkin + if("hud_toggle_color") + var/new_toggle_color = input(user, "Choose your HUD toggle flash color:", "Game Preference",hud_toggle_color) as color|null + if(new_toggle_color) + hud_toggle_color = new_toggle_color + else switch(href_list["preference"]) //CITADEL PREFERENCES EDIT - I can't figure out how to modularize these, so they have to go here. :c -Pooj @@ -2278,6 +2288,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("sprint_toggle") sprint_toggle = !sprint_toggle + + if("hud_toggle_flash") + hud_toggle_flash = !hud_toggle_flash + if("save") save_preferences() save_character() diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 69b8b5685f..731b6b7725 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -200,6 +200,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["auto_fit_viewport"] >> auto_fit_viewport S["sprint_spacebar"] >> sprint_spacebar S["sprint_toggle"] >> sprint_toggle + S["hud_toggle_flash"] >> hud_toggle_flash + S["hud_toggle_color"] >> hud_toggle_color S["menuoptions"] >> menuoptions S["enable_tips"] >> enable_tips S["tip_delay"] >> tip_delay @@ -239,6 +241,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car auto_fit_viewport = sanitize_integer(auto_fit_viewport, 0, 1, initial(auto_fit_viewport)) sprint_spacebar = sanitize_integer(sprint_spacebar, 0, 1, initial(sprint_spacebar)) sprint_toggle = sanitize_integer(sprint_toggle, 0, 1, initial(sprint_toggle)) + hud_toggle_flash = sanitize_integer(hud_toggle_flash, 0, 1, initial(hud_toggle_flash)) + hud_toggle_color = sanitize_hexcolor(hud_toggle_color, 6, 1, initial(hud_toggle_color)) ghost_form = sanitize_inlist(ghost_form, GLOB.ghost_forms, initial(ghost_form)) ghost_orbit = sanitize_inlist(ghost_orbit, GLOB.ghost_orbits, initial(ghost_orbit)) ghost_accs = sanitize_inlist(ghost_accs, GLOB.ghost_accs_options, GHOST_ACCS_DEFAULT_OPTION) @@ -248,7 +252,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car pda_style = sanitize_inlist(pda_style, GLOB.pda_styles, initial(pda_style)) pda_color = sanitize_hexcolor(pda_color, 6, 1, initial(pda_color)) pda_skin = sanitize_inlist(pda_skin, GLOB.pda_reskins, PDA_SKIN_ALT) - screenshake = sanitize_integer(screenshake, 0, 800, initial(screenshake)) damagescreenshake = sanitize_integer(damagescreenshake, 0, 2, initial(damagescreenshake)) widescreenpref = sanitize_integer(widescreenpref, 0, 1, initial(widescreenpref)) @@ -301,6 +304,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["auto_fit_viewport"], auto_fit_viewport) WRITE_FILE(S["sprint_spacebar"], sprint_spacebar) WRITE_FILE(S["sprint_toggle"], sprint_toggle) + WRITE_FILE(S["hud_toggle_flash"], hud_toggle_flash) + WRITE_FILE(S["hud_toggle_color"], hud_toggle_color) WRITE_FILE(S["menuoptions"], menuoptions) WRITE_FILE(S["enable_tips"], enable_tips) WRITE_FILE(S["tip_delay"], tip_delay) diff --git a/code/modules/mob/living/living_combat.dm b/code/modules/mob/living/living_combat.dm index 4cd2def5a8..493f2ffdff 100644 --- a/code/modules/mob/living/living_combat.dm +++ b/code/modules/mob/living/living_combat.dm @@ -43,7 +43,7 @@ /// Updates the combat mode HUD icon. /mob/living/proc/update_combat_mode_icon() var/obj/screen/combattoggle/T = locate() in hud_used?.static_inventory - T?.update_icon_state() + T?.update_icon() /// Enables intentionally being in combat mode. Please try not to use this proc for feedback whenever possible. /mob/living/proc/enable_intentional_combat_mode(silent = TRUE, visible = FALSE) diff --git a/code/modules/mob/living/living_sprint.dm b/code/modules/mob/living/living_sprint.dm index 66aa3ebc6f..55d5f3320c 100644 --- a/code/modules/mob/living/living_sprint.dm +++ b/code/modules/mob/living/living_sprint.dm @@ -4,7 +4,7 @@ /mob/living/proc/update_sprint_icon() var/obj/screen/sprintbutton/S = locate() in hud_used?.static_inventory - S?.update_icon_state() + S?.update_icon() /mob/living/proc/update_hud_sprint_bar() hud_used?.sprint_buffer?.update_to_mob(src) diff --git a/icons/mob/screen_gen.dmi b/icons/mob/screen_gen.dmi index f1fafb8946acb62a2f2a071315c35b0058f589ee..ea946f60d9c31139c6e5d3e8aed79794e0294ff0 100644 GIT binary patch literal 118425 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%0Dw-3~3Vb=*2z(+m3<|gL^|C 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 literal 116168 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%0Ag7&Z!vKsx%XFx+tCJ6{ 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¦vY+1q-NproKb)AYii2hXrrb;}d>@jGmbc(sfJX4>~-zbw;-Lrkx8xnV9B@$f+tqW*F1+ zdGIi4jija-O`?LqPD&K(rUf)?0#shx4{6X}l0TIRz=ex}oH!$f7>`xP)Ze0Q!j;UZ zt)`MMkgj7GdJ|~GD`6A|&#JbNYi(*#efijP?38?Sorh8dhM=}9@_}oQ9i51pTq-@~ zj|n)zXbnZhEk2<0&o88S?8rT_-$w|~vVy^@-`zf^LL<|s%ROO3;W)KhYncjeWG`!g zwE=L`bYJGR^~_2nEsA~>x#G1sj#T#PEvZNw11D|Ml>LFL1|AjX?!Y_*@!!v2ufFE; zv|+Z9aTx+?lz(JwA+L}pke>07_0tTS)zeHIo&<-I68}Pxw8ul!ACO@{gd!AUjth5b z?B9o{Oq~gP6CQDMbKk9*H>+9gVU<6f-n`Ka3Y}A$h*^kS0AT6O4yz&nJj)qcaeE(> ze7%7)5PuKdO4wwqJsN}fKzDTFw*Pfe6E(>_W2d@vfbt#&lRHZPGsF%`MavAyJ~)&a zJLYhU^Md7a`zcla#Mqtykro67^RG~wwELvDwn0}2@CLHX^W_p#(lvMkodS8oDyPD$ ziu{5hmc;_t0=wPBJn{o!YD>nO>blE^z;KdJ9Zb^R1Gbj2twfw!CX8U(E^R~JZRqNw zk#pP|NpBPkq=yWarNv(VkWIf$P6ABfWOk2z<=POie%wI3nEi0pt*Rl@92fbww;Xy= z0KCzH?z#N-+?%<_$%S2f{Gl=T_BW-8c`FyO;kzrLeXS18S9Tka&Gi+tc>u0CwOd|R z%{}DGS3c*+1wPxrc#+N*l@-jV|14shg;r0$Bbw6}5A$5Eda__at-KeIwce7^4a26m zEabs7t7!ywh~j7@^^(UhW&0d~OukLi729_svT7gKyx=;8$;<{qCoKxESKE$$JNtty zXi+lUklM67u7m-;piw9xX&3_2ZP#Rv2&f_E?jWfPFS+6dwRX{M^WYB>Nwoy%`KWb9 zGXaygf*BjHu81I|b4K*OCSHRNZClKToiFRSY(9fHxBMezi+k7r9zB!6@%@^iul*1ui_>D=NBl+DG5+lBfFMw)Kq2g{1^q^2FuKs{8#YRIcV=xo|HHzw!3FdS`rJpGE(e|cZq*VMW1kg9m^T_n38B?jw84X z-L$%EoMApov;ng=u#E24yB}!bi1qbOx(a(FwkvpI94qvO_w4freOFLT6ePeM1K3oo zs(ggq+}-!B%u|`+0f^8QqjdzrX4uWEm&?K?TbzQ~k^Hnzy6HatSMUovwDwZulGvM& z5IL7$OFJ8*E332whtJLz&7}l?;78lU)RJ@!> z%Vk&kPa=;9`lPRYgmUXZ;T~gKb)X3c8-6AC{M4=!d|t#7<{sA!_7ymT`Di)9cG#gP z`iE3rr29~(qw~jpp`@!27_QY~&MuUc+IjX_qame+ke>R!eMf**5bp(ZLKN;4tXQ1D zBE!ejl_!z3*rLv9Bq9TCG55`hU`aFgY}nc-(hw!7%Nj3tSrHV7Tvuc^R{L4;1*AOi z1ON(u_J3penCmyywx;QPH1=<*EU{ z?=|eMW&Whj4WNrrOLB55-)p128_(m$RL$Kt^%hW;pM+^; zdKgc$3#_(p+j@JAx`M)K_<}Z%yPJfw03t)|gsIdGF-=y}Xn?YAd){KhWeNuq>OG@t3{_)S3J?if~PD_!i5Ok5`U%`$K#xEG_|C-Z_* zw6(AU=CFk90N7ZA)@q}ZcX@l}p3p%ZoKZRbm|=l92myQG*H6i?BI3VfSiE1IzkK>U z+~;#D8sckUMo!50M5CcYPv#bG-~kIj_8DZ1F2dGyoAZ7M8s2(HnI7Bk(@s!+8f*gk zL`@pE-4JQV+xT0*y{-v3CS;=}yr+6TKw38YZ}`pe=@x4#``@UUL0P8Urj-GPV|Ca> zI$-iQsO8JV#qg4DhLxFbui3&QoW^T=Uau73vWv5a(-}2{sS9K^Mj6Q49v9i#=qGZ~ zDv~GiG$@EZA&GV~x3unfQ|8*&!)`@ZPJ0ej)(P#dlUOD)mF2)Swc>E3E2}M=fKs*Z zQz01EWw$G{Tel4kC$c0a`AK?V@i5_tgq|>xGqG>nP>@ULl<|lnJ2e7tf2L9$?jPg> zm^jYEx!F%YEaMk?Poq}l3<_gG30ao%=eqd(&IibXYb zc=#Cc#xI#@(smu=(a@dyF!ygN_If^OQXvFq_5~@6V2=>*fc3Y`{NsJ}UBrs)U-x}`>y=XEW)TvF1KEwJ=$tfhX&u=dU7j;(&UZhJgh=Hw6o z*xQh8_^&O5i>^pM=WNSXY73r*ua$7!ZJoChdRd_(L|m7l=(h*cxHP83LnJ#3n25_6 z)@!F^^(Oak!0JYx@c*uKbind%_ta;GdZB)9x1kLJZ(^}v5zFi2{67fr0AJ(1`Ra{z z*QZB^QS;yx81ELHX+E6Kwb8o-pHm5&8=+X!cGUum3BL&|HE1MlVR?DOaX|(jP0NT2 z;q8_1A65ebQfeTV*TOmO?!V(a==1>}i#_a(ktDMc_0Nj$+ZS`nP{k!D>q3>gqHNEs z<41)|x$}FqR+*;Ia222n<^UXJS=QX2$@h8qAY)gnp=! zykr`Y@VaeT*`GJzo%{Re((2(L?+gY7*3mk#KBVY$t9&!j=iFQlW6mbv(?*(aLUa|y zm;RGeE;u`$^sm8&=xL3)7hWI@hh~Rs)3@gdCAxZeXbVIDUZifxOk11kYvL~`2N+u> zdSvXR@0=P}4;Ol1@feJhefjtjfO_pyh9iq$n6%t((*jN&fJC#ONSj<8#p=-R)~*-q z5emX*Yff=jqapQt<=)!tF-^irJDCfwXO4eJ`w$}PhU+=m=Ye%ova~M%mSGzGN+v!j zx1K~TMEGg45IH*?DljI2VLGT^xUJjr1Gpepo6=W-p) znJZ`>DR!!p$~v>5NFhenIP`jb%(EGTl@Vkp@54ML-2>}d)R%UB7pBzSUH>&Z8)Op} zMzD=UMaWAtF)=B1KwVtcgES9Imax8G#)K38O4T4`H!?_X9ik#7e#hp}nXrZSJ^lNC znJLNJ2gH)jQqPE3BofaBdVjc$_$iE&5@p{zLGp88PTCU6Em@i-L{0dYrWQ7()j%&X zh4nilG-mykqm?UmynW!!S3Q6S^)e|To3TL({w84uSk3n|cDXe^eVPPdey;_|FQo8- zQ~{&qUcW-ub?xF%VlTl>=Suz#<^~iChQM)`=mE)tm;tnJ^n|59oafMmf^b(r*DYL- zJ=8_+P|M^B;7T_uZIHhK9KPrqZMWzb5Rkv_PZnVWqeB|UJ-jMwH+3mg_h|`ZJDCRc zlFj6_Ck;yDuVC%2Or^uY>Ln0$tg0jxY|?VHbWMQ_*vwBLr{T_}d?k>|8+^R{%VPB-&v2oMf(PtRoc!k>7CB_+C>OIU_> z;h#V6f1*T*0+xBbfhCKAyeZkfL>@TH720Yb>^4Y(@}d$VEXrFK0pf6VFF1jr6EdT? zd7f^5EsA`v5M)D>egN!77D8?+*n3j&IGyteXDcB+plBKUbWCvkghlQ7#-WCnof|o% z&~s=El>1OsmR3f)j1ur+0}%(h)Ts0~a(=E(Fi_0Q>PGVC%=se*+Ha*OX8LJi{n7lF z`JjmUJEZh56IvmiC1Tu0FCSI$0~xYkCNPQ9ayB*UDTCn|(szl1_L*CyD^gb$AI7kD z5?FpGUc8gD1E{hQOwX~MPb}bOZr1lyAlAFzE&?y`i3jP^KEWG%Z7}rTr6ZQzbg`+X z9601VdmpKp-ic0R?IbE>06~EOk#=YJ)dHt?XMf9G*r9KEC1=r z7=iTxADWx*6H>B9^}{v?8D5^lgHL312)1oo6G}u|^+T7>L|lRU@P6f)b+Z|1b9y0p z1qMU}^BlvD|87>mI3rvH=Ikb6#mjM2r0$-Afqkgjsn}A%n8W@Q9)}i~Xe)(ZEtIS39i4Qt?6o=Lkh0mBq{{)?9By(g(c5=LyFyHdE z%_SGkj9ZJuykSXNYkQxUe-dfRe_A2nAG*shyZJ(Z7AV@15c~g%jK8Z)Lxblc8yH*q zZcjB#^n$Kr<`G>7BY!ZqB*6pIFh{i%K3stU(EW{;O=jMfL%XJnqByG~J!lRE>Yb$^ zaK3jP4KXXH057l$^TWVG4NU!L1YTyFK`_AP0_ocV9z}eC2C}naH0C9f4s*DI}aOZfz z7xNcZVb)K9ba64>I$wMX62=|SW4onq3&ckd&iJMZA@EmLnz8V-xnnZPR<1~H5+COKg~ zqwWHZz(O%)?Pr>bSnvXA13@|k;y>RHitgAcOS_mTnZ)p&uKJM`y<|Nvl~li0alWx~ zPGNf)8a$o+kU8oAwa$O4N~I|Ww$8(?%Y?C7ggx6B)gFkpB}U40wIA)2@lvjJjD?_5 z`!_$lH)fTNhConK$rHABl{Fg}+gc;*wT*3){D3{SLPIDZ@wte%Ca8BknY4@9|H~ng zjnj2Dl9q^K34}3LPbramH5Ybx-6a0j@1H-fOeH2JT3UdAief&FV!~{s0qgu}Mdrvc zlW!(E03;g;1r%%z+NU{J4IcO<%Ghk6N?(rR3VPBcj)UZL^!j^T`s(-@VS(gLN}VE#iBU*X6ecDzgW7YyxgZ7LjRX7CcSPrsnIdE;WYG|} z#Uy^U;Oy6|-xL#l(HFPC&&uTM>4g^7o90v1==wk8pR5akY5IJ;@^0_no=!hGi@o%> zZdRJ-3)#;cJ}lam>!D13%q@pcnN)x;jQb8`ck-kE3+~<4Cs$gY8FhWz%dOXu6Iy?F zysE!CwfCY|$sw+N_8YddCv8CfmCJ+m#dFOiE(dRWYwPbpEdKC{Kd`x&ttW>kwF1Ak z!030vAbJ|qOT=g<{TOGuLto@z-{~c#4Z^0#;8t@%ibKB{oTaYBtLNQ0 z>F&oUd2YwgRik9_YR{uc#W1j_p`xbcWh-a62_IB{6`QNP%i;OdJDZ^Xd>H}U{e0Pm z7rO77TXo7NMHJ!;W78Vr;>4)|-=$IvqXZT#_{A>lYeXbya-Ub`Pa)*k-2I*N*<@W& z_KSzIl}Zyv73d2U6As0+9d4n~q_5OvqVudrO7~N|DC8Yf{Wg9fLu|+LUt5&~r(sva zIR9X&e-6mFdbzs3UJO^7e3W)v?{i$TKsW#Pl@*gwc8YicOUGV9`s+(m@KDwW6S3il zO+BT6?JJYNDxqN|HBL5ShVV`9@T+%U=k|pD5KVnHhK}L7X-%_0;-J8S&HB+Xv%h|M z!=W6smYMTTtbegN*qC+~=LP!H+BeRa zdDViCWH}m%2hAIvmZtHqGYi>4eA=Eo68Q=?cwta77qj7WsEKn-_KS7coj+O=8EOI! z4y3-I%ov3eSWL;%BlYa-tu1?*>LC46F^u2S((Lily}sk@-_$L~S(+362Z&uQ#mPmc zb{CGQ#CkGEX;SaNhQhy1OzQq} z$+Nw^#F0)$gF^3DK+@`xPv4D9*|zP^3ET=8ei1|iRvH5s{L;uYG3$_@uRnTGra94( z#Scf*2z0>A4CzvMHXrj1xN}XQBVmmJw%G*`rDHzBDy8DfCRNsaxjTo86OrHH=PPGB zS+b42_59|>nKYe>@*iHkKh7*oP`hN#GkUbcc&&6O+BP?5eXcjTE;HR~-mxMqodEZvn?1v@U!|Oq zJyjRd83`0>0Dzh1z6&W8u*sV#uKGgu9*XxLhb*et-l2H*-ku`!hn=`F>ux=7qq=5g z4?ybctW#}2QVVYHt8CH*dyf98!Cr?I|gTQ^&eGuPkoMJWUbbn!IH@qItp*?_L6Ppowuq|tTx5H=kB zvk+%P5~=P#g3x3hh@4Hk2KPPomNL~M&v8+>DiLLdrPZc6WiOhCehU| ztlpm%M{a6}vOfwxOjwU00NnHe!IedYTMhW#(>Q@Mj zIUd!X5gqb9CPN0Nh(C2Anie-X>KHNZ&kwg4$v^w0G13ovI-|PuH70KaK3SjmBF5Kb zY`Thx;PO0F1oax_zEi^oXp~qdh8^7k$<`{sP5rXM((#(8DKVOt{=2#`sLf3v3TqKmAEY5ZY*n3^@S`TCFs-3?I*iXJ*FSg zd!xdM|G>^q`0?N;hit}*4i8)dESWm}I|wG!yRah+Yyr(t&7K>|Uy86`8YI|cMo!jM zV6VCqw&szw?wG0czM^t3zIzq*~%v4v6^2FhqA;F^-$aKOi49L zluN}c^pdU;O*7O}<~Uy!B#S>$Q$Y+g9;rB=b8XD-C*rNb%3bQq@cFFzs?d-Yp?9bkQg0{PC+Eya;iJBhhOfynEsf zF=E%gM;GsoW`@TkQ1Cmw+bfFk|BeV-F1Ql&>+zQyZt{>cip7n67rU`U=mE1Qz|5BT#mQEAc~h^-Y?6D+(BMDv zpGWyIky0jP?JidX4K}aRfmu z{f>z#t6{g{-nn%N^sSiPZ7;8udj5`^C-m2&oV%5oG~|HCaARlZo~%Z! zR|%(0SztTM96O)I%_3MRY+(-5RSWOZ;tF(6R*&m)LQeOl+`p5)i`XlBMoZPP1S^65*%TBF+Qq-WOVMFwnvVom_!pXcP`Ffse&>LVU7!x<6as3is^S^AB z(F;{jD7FPXW%VW(yMZra1L}Tl)RLl+&Ej50|Mhw{VMb1awyG8z-4P`UmtV91jpw{jAZ8+ z%1w)9)U=Y^Aim}B-bj0_f4(`vOc_1!oV6?TWmdOh9@onF@83S?-=B45j|BW=;lFi&It%W&*bbw0OT?#~G8P+mi&~vkSOeeCi{qI`2s$vw{P&pjf zI#7*d%cjB(`Oz@xHH6`lyJsQs!%=uAAlBn{XZ=aYdPP`#4Kk&IhO`=bKF*Icyilj` zQ{e)e+^-yDcJ56_!}Pad>tZs>eKy1o7qdF9nDoXJ;QVHsBbE7T_%Qy4(mdU+jN$RI=sEF=dOK=Opf zRfS-g-|?yNr;3?$;4yL2{`9mT5ytA`U#5J9aEdMabHVTUe1k{5?Jj7v_R!@@BWW%} zt?y+lIR$82ubv`Jf#D}41pdKEnTDVwp9R@gFKJDRvMrIgAz91=H#9f3E*agf*Bdi3-82OT_{ z#Pz{D^RG+OPaVo+%C7IMsMm&-O^GC*#pHO6f2v5!6gR5T{7@@mXTGI>qf>BuuI3$I zw3_}YyR%*Pe4GkgWj((Ux~qoGmE+&T2n(q~M_c2pc18)q)9^!;m@L17?54LJ9s`vO zw$G&P0zUr9^fBL5NFH!B9ey-_NylGHh)d>g6Uymr*6D~zZI{H{hwE?e6~#>KH}t$0C1OPd49ug7#=~X3TA0Mi zEUdTLG9wh&Eh?@3ez5P(%rITN;`3D!hW^ zB=fdrF1TWo7!U6+3`!mOQfKSu5blRw5V+<(CJF2sn=qm|p6Z8g|e)X3>`Z;HndIq&hB*f#uLzT7TS zJZZkp6FtWBh=QcJ(jXw z*0@u`=TjVCYso!R$+rxV4+r^~Jv@I}B^f9T&Llw2ck(47gWD?St`0ly6f<5kP;1@! zXsIqEgQ%N}!y+z1 z9_8yhZI6bNogO1W_Uzt*SyApJ2l+yp`R$*Q#Iah?8~#v@V@)NXDHS?0a`*2Y3vJl_ zkc`$MJff???FnxPy?%r`=5d0MrJ=8xO-c{q%9VYLu8T z9M8i186S*{L+#Y{T{%v#6Jpcw3LSFCKBPcQPy}(icj{bZNiMa0+f|af2GMD1(t-iq zv<$wQ8iM{l0rMMfg{ns{BdlG~*zlFd!~Pv=wi>|coo(wTp}USrjnY!Dn9z9ZXIb?b z;fL!iFyhSVIo&^dxP{|i%6qrphklzxissqg+w&Z*Bp(|)oEN-K#`3wjnUjytdT(RM^Y@QCXI_;695u*t*WSC-B2_tLhrYMhrX5T;1V6zEmc*et7BJ_F>qPtqBo|tl zHI5YVO_kO?(XtoT{)j(DzE4VvMKPFlu+LK~%IK=JKs^)Po%n`0>;20@9io@8b>Hg6 z5LX!>;Y*H59a8xPnlGM}-+$MMJk4}1?b$!+WZ@pE!)FgcwasEk& zB(ORr&@0jwF%kLaPp80K3hT2_@lmQk+0MhmbF@#mH5q1hZruy95Sh(Y=`Ruw&59UW zXlXp^r)%g(gNc%vcLrQnf%jgC1;egb-!(9u3Qpz)I=gZm_oxs63NNL#intc`lClwB z?pNiuhq8=a-5mwschbfN2173dv&ip|H&W1CJkWbu&TNqMfXgS#=~xA%jy3AFRN3**o_66=${O+m4urKq@wQsnV9Q>$`cN zFn?^2_UW07Za8?L!3bk${qq)S2TmeR==J`D`vi~no|CXLu-^ra3yBuUk=ZObb|_N& zP{u2-UKYGtpzlZe{jz_M;BqDQ`EUoFV%Ke@lt7ZW^J&OYw8W*%Zv0x-5@v#>MB9oD z!|4zU(*|d;`RKKs@t?2JviANm#d^IFSwWZ5ok!a(t&>FBgca^hTa z7%_WDqbp$fDl`3|1Jhp&Sov}m{E|v!ykpW1lnf%)t>dMw!8>#C>0M>2`+eaLYP8QsEfJwE8T$)bVW5u2HR1y*?uD4C->@%7Ch^8Uu(XOkczVbE)k@X4DX9!n35PIH(qXa8tZNM znah|y$!HNln7j+1P6THio!t8=wJd@_a_`Xd!W0|HX_zk~swF!`5ZTEtTL>GQP3$#6vA8nQYtE?4(z#kD1~ z1F5&r{veU4XKeic%l`iVW`8`CGzd%!9a^>yvDqL%p3%9GxmGd>qFIxAcQ3OGwlTY6Qb>5N&nRI*V1(JT>%IprAh?I=PwyD=JM2Icd zjqhz&5v1dxc!ST8STC3&9msoZ>`CgLR!I2Ylt8R1pH)(w>N>8+-lsPwMnC|(n-a*v z!a{@ike^SDif@pj<6H}|x4*iFI6ZA3)x_f@$ty&VosIHr`48IDS1lFmb;!->8&X0U z)~D`!>yufeK$aGAa6nd0sKr=$`oCSBRdTf|A{A(wl$_E}w|kv>ZBF|cN^<_wZ({z< zJv`2~7B{KjHu+CUBVnoNA38ByMvtX)khIHx?*|qX)m>c@0lIVO{cH5FOfgdbK*~xh z&AXVxN*@kXr6E>4QeUDWEnIS--kZrRD*b`C1mQ7IA8z?Wv5Y;tvvN`7ANR=xQc2o> zCqTAHbjqLt>e`Csi3j84Yjn!PHZmD5n0;+ciH=oVmamW$tTae zbB~iy_Mfy0kXHL|zQNXL<#nXcdQmn!cqNxKTNFy~dS+U;GvP~)Lp{(m3f37H2TsHz`%LSK;*&Ms>1oqqJ; zW>!?GKHMnRph)lk_l-^!CEW3m?z+k7klsxfSmW)yRRKrI4)|EFir~?5&F55^Reem8 z3QbY;1qQ ziAa9G%=_oo1usa~CO4K}3=1nyeksL(1Ek+mqhf^yX&WP~d3<+HFQcRVA$FD!_#FVmBl<^pchUYMQ#_$Y2? z1k7>2w&y`AJ~KlriNYCJta%2}Z`{OKzP$(gex4t%?A=JTOq<`|_aXfZ<-KW6lfSy4 zxHO%O)Mlz5l{cL9Mq73LFX?U#B%y=uetrR`QBrSzD#nVaxfwqHiHa#+0lFE@SN!@h zhezJ67kUp?Jgb>izY|rMgWg#hleX!;k-SEjCwE@jH#6r_S{}FdF`2b^7Vk3FJbqnv zyuE!x{S-xE)fUQS8+QE90j>oc+j}n|xv~eKnn3YC5z}aj{36{3>Ep8qvCT^r2CeES zz2F%1gGv@fy~gr0NMYTu$Yw~%#jZi{wb0fAuGm{zK(#^_a8>ia%?MJCA5CfR`=|Un z7v5`==Z|HkaXx;tCec*%^vPy=>4p^bh+~T_E9K?KqA`Q!xrS#h?^goXMV~&AfXif* zZoG7_`qJ{_!3~q&uP#4+^Hwr0F3#s*bs*inl%HIqI zySkMJ06E}FiT)y6+J*kr_|!#c?f5*e=~H?0H9{pqeO)!{-DTwLt0@h>hIhLeM~7nS z(1pX_(|{UF?vIk)#YIhJ>>TmG4Vp;5_L8f|%3>97hWW?W zS|^~(&ziIN6|NuqZ|U{PVAHkM;Pou+%SU~*e=4q(R2DDDckTUr*c_YHHuY=_KJ{ND z{T^XX&!6F!l;{^b6~2CWZRhAiA&2UXP4$}x4_$Y#<1aN;2%;|`dH(#y6)~cVfR;&D zPLN(xHp{oVw_9E_cPP_>du5*A#Cv7~u+U`xrKSs|Ch*BP!O;@BQFjQS#@v5$^ai@S zwKvH7H#cAG99iZHe36o*L$_RoPh|mnzn7=l8LW%$kTKH|KKZkGY+9xBPlm%i@+d8p z6<)CHwm-Q@SvV25TF3Q%M6Z`@kpTqQH6yftbr^uPaKLRo>9(Px>No5NsKwH?_LjxN zxZz1_06fC2Psd-9)i9K|y$ji_Z-i-yrfS}@@YKEXhv}7LOBOmRHD21d(uYixuj6 zKms+MsXDlEgg3))y5o6D*O#d=fyaxvKOEMmHn1xv6YG4HZ9MZOEM5m0Up<$yMP`G6@KRQ}1 zd__<%e;V>s;|m9>6f@s$(9ulJhM0m!)e+MpLOFe{!?7IZzw8b5JGw+#GhK3kWtmYSrtOO>0P-b;QLh!h}bKii)0p9eIOJ;9L!L%bZaB~(w>jgDk{|4S85I*jmP|mR{?DYhS*Io5f>6zo0^tGXn6=6M z&K~gpbz8!H_-Bz8vo*2jKiApW+3(D;l<0Rb6(P01ax7?^85R9|A;12$2t^J2t2O=T zrUJl`CRQ|jKI_aq3m?i)m_gK&fkOAG?e4YRb9Kjw>8RYwI&PzVA4u`zD)K5pw{O8v zl)?oZEvBl%UP*@XlzCp>oADFtZsk_1uUVMLt}j7&6M0rc&_$Z~?> z%L^s(!ODRn%lv|HX7_up!9;zj)1>P%aGGw2luW-uF%nZ&guI&mY%fz%rZ3{Oe2ofM za&#P)eq>qnfPrYgw#F|Q?jEGsCJ{!we~oatY%+@GZ_@lToA(e{c=3^C_ctn*1=39U z+P8xpB&oz0F3@~e9vEjwaRx=rtHv{zA=%O6=XE`nvD&%MnC3Vj$$%(av7+dG!c67X zR%Y8^gu5(sNsRl^p%L2+OrYKlt>-|!DvU#Po%6B-wFvK*e|#j4Pu7}cAM3W0Jta4j zTz;@+oeutzUhtas?JWwn|0gd2(Ebe6inx?|`|?{Et0Ul{^UESGrQU)0XZ$bl0002} zNkl5f8(!`PP+hLXdDED1u@5HOIR0O$ZVW1VuOuzvfz3z6n9X zmFCx$Z=x#UfWrN6die%ez!`>Fx3GXS%p-y%;*ppVZy8C%BQYi3GLnc#VoJPaBoU9q zn0U(sMLe2ELA(hTaE4*lDJ(^b diff --git a/modular_citadel/code/_onclick/hud/screen_objects.dm b/modular_citadel/code/_onclick/hud/screen_objects.dm index bcb44af84b..2101a6045f 100644 --- a/modular_citadel/code/_onclick/hud/screen_objects.dm +++ b/modular_citadel/code/_onclick/hud/screen_objects.dm @@ -12,6 +12,7 @@ name = "toggle combat mode" icon = 'modular_citadel/icons/ui/screen_midnight.dmi' icon_state = "combat_off" + var/mutable_appearance/flashy /obj/screen/combattoggle/Click() if(iscarbon(usr)) @@ -29,6 +30,19 @@ else icon_state = "combat_off" +/obj/screen/combattoggle/update_overlays() + . = ..() + var/mob/living/carbon/user = hud?.mymob + if(!istype(user) || !user.client) + return + + if((user.combat_flags & COMBAT_FLAG_COMBAT_ACTIVE) && user.client.prefs.hud_toggle_flash) + if(!flashy) + flashy = mutable_appearance('icons/mob/screen_gen.dmi', "togglefull_flash") + if(flashy.color != user.client.prefs.hud_toggle_color) + flashy.color = user.client.prefs.hud_toggle_color + . += flashy //TODO - beg lummox jr for the ability to force mutable appearances or images to be created rendering from their first frame of animation rather than being based entirely around the client's frame count + /obj/screen/voretoggle name = "toggle vore mode" icon = 'modular_citadel/icons/ui/screen_midnight.dmi' diff --git a/modular_citadel/code/_onclick/hud/sprint.dm b/modular_citadel/code/_onclick/hud/sprint.dm index 7199f0286e..89547c0feb 100644 --- a/modular_citadel/code/_onclick/hud/sprint.dm +++ b/modular_citadel/code/_onclick/hud/sprint.dm @@ -6,6 +6,7 @@ icon = 'modular_citadel/icons/ui/screen_midnight.dmi' icon_state = "act_sprint" layer = ABOVE_HUD_LAYER - 0.1 + var/mutable_appearance/flashy /obj/screen/sprintbutton/Click() if(ishuman(usr)) @@ -23,6 +24,19 @@ else icon_state = "act_sprint" +/obj/screen/sprintbutton/update_overlays() + . = ..() + var/mob/living/carbon/user = hud?.mymob + if(!istype(user) || !user.client) + return + + if((user.combat_flags & COMBAT_FLAG_SPRINT_ACTIVE) && user.client.prefs.hud_toggle_flash) + if(!flashy) + flashy = mutable_appearance('icons/mob/screen_gen.dmi', "togglehalf_flash") + if(flashy.color != user.client.prefs.hud_toggle_color) + flashy.color = user.client.prefs.hud_toggle_color + . += flashy + //Sprint buffer onscreen code. /datum/hud/var/obj/screen/sprint_buffer/sprint_buffer From ae2facc017c58b4397878b574072d8a4e146a6cf Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 26 Mar 2020 10:51:50 -0500 Subject: [PATCH 20/75] Automatic changelog generation for PR #11623 [ci skip] --- html/changelogs/AutoChangeLog-pr-11623.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11623.yml diff --git a/html/changelogs/AutoChangeLog-pr-11623.yml b/html/changelogs/AutoChangeLog-pr-11623.yml new file mode 100644 index 0000000000..69fe5dbc6e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11623.yml @@ -0,0 +1,4 @@ +author: "Bhijn" +delete-after: True +changes: + - rscadd: "Added a lfwb-inspired orbiting pixel + flashing outline animation to the sprint and combat mode buttons. This can be toggled via the preferences menu, and is completely independent from all HUD themes." From 38c37d75a3c787d4eca1593b2dbcb4a7c3bde971 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 26 Mar 2020 17:15:45 +0100 Subject: [PATCH 21/75] Update bees.dm --- code/modules/mob/living/simple_animal/hostile/bees.dm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index ce7ab92e0c..75b2e90eff 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -268,11 +268,14 @@ to_chat(user, "You don't have enough royal bee jelly to split a bee in two!") else var/datum/reagent/R = GLOB.chemical_reagents_list[S.reagents.get_master_reagent_id()] - if(R && S.reagents.has_reagent(R.type, 5)) + else if(R && S.reagents.has_reagent(R.type, 5)) S.reagents.remove_reagent(R.type,5) - queen.assign_reagent(R) - user.visible_message("[user] injects [src]'s genome with [R.name], mutating it's DNA!","You inject [src]'s genome with [R.name], mutating it's DNA!") - name = queen.name + if(R.can_synth) + queen.assign_reagent(R) + user.visible_message("[user] injects [src]'s genome with [R.name], mutating it's DNA!","You inject [src]'s genome with [R.name], mutating it's DNA!") + name = queen.name + else + user.visible_message("[user] injects [src]'s genome with [R.name]... but nothing happens.","You inject [src]'s genome with [R.name]... but nothing happens.") else to_chat(user, "You don't have enough units of that chemical to modify the bee's DNA!") ..() From 4e531518c3b240d9e023995a2022fba5515be878 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 26 Mar 2020 17:20:57 +0100 Subject: [PATCH 22/75] Update bees.dm --- code/modules/mob/living/simple_animal/hostile/bees.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 75b2e90eff..f5454933c8 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -268,7 +268,7 @@ to_chat(user, "You don't have enough royal bee jelly to split a bee in two!") else var/datum/reagent/R = GLOB.chemical_reagents_list[S.reagents.get_master_reagent_id()] - else if(R && S.reagents.has_reagent(R.type, 5)) + if(R && S.reagents.has_reagent(R.type, 5)) S.reagents.remove_reagent(R.type,5) if(R.can_synth) queen.assign_reagent(R) From ef3106aab6a4ddf58317d7c1d964c738de8f4925 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Thu, 26 Mar 2020 19:24:56 +0100 Subject: [PATCH 23/75] Fixing a couple issues with sofas again. --- .../objects/structures/beds_chairs/sofa.dm | 1 + icons/obj/sofa.dmi | Bin 15709 -> 15681 bytes 2 files changed, 1 insertion(+) diff --git a/code/game/objects/structures/beds_chairs/sofa.dm b/code/game/objects/structures/beds_chairs/sofa.dm index e138e4d314..ea7875b6ba 100644 --- a/code/game/objects/structures/beds_chairs/sofa.dm +++ b/code/game/objects/structures/beds_chairs/sofa.dm @@ -3,6 +3,7 @@ icon_state = "sofamiddle" icon = 'icons/obj/sofa.dmi' buildstackamount = 1 + var/item_chair = null var/mutable_appearance/armrest /obj/structure/chair/sofa/Initialize() diff --git a/icons/obj/sofa.dmi b/icons/obj/sofa.dmi index 1d6510981b076c2a057988c8d43ef8f017842152..3f4d8349dc303c458e6cb96622661916adaa25e6 100644 GIT binary patch delta 15115 zcmZ9TWk4LkvbJ||hv4oZxI+l;gy8P(4he39y9Br38X&m4yGw8h1b271n{&SV{kZ#c zx2vbSrt7J*Jb0Il3^4MN3Or zOX<-<=cC$-uY`3yVZ=x+di1Q$fL}H0=^a@c`1mJO#-m?<(bI5DX8T{?7(2%|1KXC3 zVxq20gP(E7GGy5nWQ4_DrKfMl`VUVq>Ssyw!_Lt6*OQf`UN^QLXMn-%6TSx?Ig)Qr zsE_^OXtAwT*GAcKR@(Wr~3GX+ZzrB&Ft7&@d@p>J`Ok$ie5_t&E@fP0) zAruCVV^VR7QRMg0MdgWK5#XHBrSUCTez{KR*COrc(Q4sl!3 z>@Cm|vRa)*Uw0JJT1#@FFkU~&hShjuf0!UEdeI`W@Gob?{SIWI`UCEHmxoJg;O`;T zE?!+uzVBTL3!D_nJGOrNyc=qLnJq#%$u35nhVr9gBb!T;>Dq_8!}@$H$JGLMx1nf0 z3J>xCEoB6+9a%!5rtG#~*eR<=%)MGE2HnQ4yloqTg>MMo2&i@+H(~iYJ>@RBkzMV~ zO;OXAF6kN0SO6UO-ALTV3EYg+UZwV;E4TGYreiKG!dG51JYfl&w*orRr%0D_QAJO6 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 MkQc8IH3SFz4>9kc>i_@% delta 15115 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 From 759182ed9090b8170b5f1694af38046a00c481af Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 26 Mar 2020 21:04:58 +0100 Subject: [PATCH 24/75] Update sofa.dm --- code/game/objects/structures/beds_chairs/sofa.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/beds_chairs/sofa.dm b/code/game/objects/structures/beds_chairs/sofa.dm index ea7875b6ba..48352814b5 100644 --- a/code/game/objects/structures/beds_chairs/sofa.dm +++ b/code/game/objects/structures/beds_chairs/sofa.dm @@ -3,7 +3,7 @@ icon_state = "sofamiddle" icon = 'icons/obj/sofa.dmi' buildstackamount = 1 - var/item_chair = null + item_chair = null var/mutable_appearance/armrest /obj/structure/chair/sofa/Initialize() From 265f67a8256ce319babb6bb795378de2b56d02c4 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 26 Mar 2020 15:24:29 -0500 Subject: [PATCH 25/75] Automatic changelog generation for PR #11607 [ci skip] --- html/changelogs/AutoChangeLog-pr-11607.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11607.yml diff --git a/html/changelogs/AutoChangeLog-pr-11607.yml b/html/changelogs/AutoChangeLog-pr-11607.yml new file mode 100644 index 0000000000..46dac6a318 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11607.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - rscadd: "Underwear now fulfills its purpose." + - rscadd: "Privates visibility preferences." From e368a7d8e39629c356c59d244e7b4456726e208e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 26 Mar 2020 17:21:10 -0400 Subject: [PATCH 26/75] Update medical_tools.dm --- code/game/mecha/equipment/tools/medical_tools.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm index 7d44e7611c..1740ae560e 100644 --- a/code/game/mecha/equipment/tools/medical_tools.dm +++ b/code/game/mecha/equipment/tools/medical_tools.dm @@ -259,7 +259,8 @@ . = ..() create_reagents(max_volume, NO_REACT) syringes = new - known_reagents = list(/datum/reagent/medicine/epinephrine = "Epinephrine", /datum/reagent/medicine/charcoal = "Charcoal") + known_reagents = list(/datum/reagent/medicine/epinephrine = "Epinephrine", /datum/reagent/medicine/charcoal = "Charcoal", /datum/reagent/medicine/prussian_blue = "Prussian Blue", \ + /datum/reagent/medicine/dexalin = "Dexalin", /datum/reagent/medicine/insulin = "Insulin", /datum/reagent/medicine/kelotane = "Kelotane", /datum/reagent/medicine/bicaridine = "Bicaridine") processed_reagents = new /obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/detach() From 3c42e9eefd14f0944d2a9c46a3de4f33ba95826a Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Thu, 26 Mar 2020 23:22:51 +0100 Subject: [PATCH 27/75] Moderately unoriginal PR title about runtime errors. --- code/modules/client/preferences.dm | 2 ++ code/modules/mob/living/brain/brain_item.dm | 2 +- code/modules/mob/living/carbon/carbon.dm | 2 ++ code/modules/mob/living/living.dm | 2 +- code/modules/projectiles/guns/energy.dm | 8 ++++---- .../code/datums/status_effects/chems.dm | 20 +++++++++---------- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 87330ce42c..23f45de99b 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2131,6 +2131,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) toggles ^= MEMBER_PUBLIC if("gender") var/chosengender = input(user, "Select your character's gender.", "Gender Selection", gender) as null|anything in list(MALE,FEMALE,"nonbinary","object") + if(!chosengender) + return switch(chosengender) if("nonbinary") chosengender = PLURAL diff --git a/code/modules/mob/living/brain/brain_item.dm b/code/modules/mob/living/brain/brain_item.dm index 3b64c35969..f32d84ae73 100644 --- a/code/modules/mob/living/brain/brain_item.dm +++ b/code/modules/mob/living/brain/brain_item.dm @@ -88,7 +88,7 @@ brainmob.stored_dna = new /datum/dna/stored(brainmob) C.dna.copy_dna(brainmob.stored_dna) if(HAS_TRAIT(L, TRAIT_NOCLONE)) - brainmob.status_traits[TRAIT_NOCLONE] = L.status_traits[TRAIT_NOCLONE] + LAZYSET(brainmob.status_traits, TRAIT_NOCLONE, L.status_traits[TRAIT_NOCLONE]) var/obj/item/organ/zombie_infection/ZI = L.getorganslot(ORGAN_SLOT_ZOMBIE) if(ZI) brainmob.set_species(ZI.old_species) //For if the brain is cloned diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 938f6531f1..8270bc7156 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -283,6 +283,8 @@ /mob/living/carbon/resist_buckle() . = FALSE + if(!buckled) + return if(restrained()) // too soon. if(last_special > world.time) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 1309fae60c..2002fa638b 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -715,7 +715,7 @@ return TRUE /mob/living/proc/resist_buckle() - buckled.user_unbuckle_mob(src,src) + buckled?.user_unbuckle_mob(src,src) /mob/living/proc/resist_fire() return diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index be43bc48fd..36a9bba295 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -65,10 +65,10 @@ update_icon() /obj/item/gun/energy/Destroy() - if(flags_1 & INITIALIZED_1) - QDEL_NULL(cell) - QDEL_LIST(ammo_type) - STOP_PROCESSING(SSobj, src) + //no need to delete them, since contents are already deleted in atom/movable/Destroy(). + cell = null + ammo_type = null + STOP_PROCESSING(SSobj, src) return ..() /obj/item/gun/energy/examine(mob/user) diff --git a/modular_citadel/code/datums/status_effects/chems.dm b/modular_citadel/code/datums/status_effects/chems.dm index 82b3c39bb6..369fb377a5 100644 --- a/modular_citadel/code/datums/status_effects/chems.dm +++ b/modular_citadel/code/datums/status_effects/chems.dm @@ -23,11 +23,10 @@ owner.remove_status_effect(src) ..() -/datum/status_effect/chem/SGDF/on_remove(mob/living/carbon/M) +/datum/status_effect/chem/SGDF/on_remove() log_game("FERMICHEM: SGDF mind shift applied. [owner] is now playing as their clone and should not have memories after their clone split (look up SGDF status applied). ID: [owner.key]") originalmind.transfer_to(fermi_Clone) to_chat(owner, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. Curiously, you find that you memories are blank after you ingested the synthetic serum, leaving you to wonder where the other you is.") - to_chat(M, "Lucidity shoots to your previously blank mind as your mind suddenly finishes the cloning process. You marvel for a moment at yourself, as your mind subconciously recollects all your memories up until the point when you cloned yourself. Curiously, you find that you memories are blank after you ingested the synthetic serum, leaving you to wonder where the other you is.") fermi_Clone = null return ..() @@ -193,15 +192,14 @@ log_game("FERMICHEM: [M]'s possesser has been booted out into a astral ghost!") originalmind.transfer_to(original) -/datum/status_effect/chem/astral_insurance/on_remove(mob/living/carbon/M) //God damnit get them home! - if(owner.mind == originalmind) //If they're home, HOORAY - return ..() - if(owner.mind) - var/mob/living/simple_animal/astral/G = new(get_turf(M.loc)) - owner.mind.transfer_to(G)//Just in case someone else is inside of you, it makes them a ghost and should hopefully bring them home at the end. - to_chat(G, "[M]'s conciousness snaps back to them as their astrogen runs out, kicking your projected mind out!'") - log_game("FERMICHEM: [M]'s possesser has been booted out into a astral ghost!") - originalmind.transfer_to(original) +/datum/status_effect/chem/astral_insurance/on_remove() //God damnit get them home! + if(owner.mind != originalmind) //If they're home, HOORAY + if(owner.mind) + var/mob/living/simple_animal/astral/G = new(get_turf(owner)) + owner.mind.transfer_to(G)//Just in case someone else is inside of you, it makes them a ghost and should hopefully bring them home at the end. + to_chat(G, "[owner]'s conciousness snaps back to them as their astrogen runs out, kicking your projected mind out!'") + log_game("FERMICHEM: [owner]'s possesser has been booted out into a astral ghost!") + originalmind.transfer_to(original) return ..() /*////////////////////////////////////////// From 1eb25e4880e0b25229707cb0ec16750fdc89f31f Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Thu, 26 Mar 2020 23:56:01 +0100 Subject: [PATCH 28/75] Update dna.dm --- code/datums/dna.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 4ddf74fc0a..95b45b6bc2 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -412,13 +412,13 @@ switch(deconstruct_block(getblock(dna.uni_identity, DNA_GENDER_BLOCK), 4)) if(G_MALE) - set_gender(MALE, TRUE) + set_gender(MALE, TRUE, forced = TRUE) if(G_FEMALE) - set_gender(FEMALE, TRUE) + set_gender(FEMALE, TRUE, forced = TRUE) if(G_PLURAL) - set_gender(PLURAL, TRUE) + set_gender(PLURAL, TRUE, forced = TRUE) else - set_gender(NEUTER, TRUE) + set_gender(NEUTER, TRUE, forced = TRUE) /mob/living/carbon/human/updateappearance(icon_update=1, mutcolor_update=0, mutations_overlay_update=0) ..() From b7c801a1730ef763484b44bf4aee2703f4921389 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 26 Mar 2020 18:06:53 -0500 Subject: [PATCH 29/75] Automatic changelog generation for PR #11622 [ci skip] --- html/changelogs/AutoChangeLog-pr-11622.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11622.yml diff --git a/html/changelogs/AutoChangeLog-pr-11622.yml b/html/changelogs/AutoChangeLog-pr-11622.yml new file mode 100644 index 0000000000..f1976ce8ea --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11622.yml @@ -0,0 +1,5 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "mobs with antag statuses such as wizard, ert and nuke ops get their flavor text removed now." + - bugfix: "Fixed megafauna mobs, goliaths and \"anchored\" AIs being stuffable into closets." From a157a933c709c9cafa215cdcd77dd8a2476fec10 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Fri, 27 Mar 2020 00:18:43 +0100 Subject: [PATCH 30/75] | --- code/modules/admin/admin.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 7be6269589..1df424815b 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -194,7 +194,7 @@ body += "Thunderdome Admin | " body += "Thunderdome Observer | " body += "Make mentor | " - body += "Remove mentor" + body += "Remove mentor | " body += "Allow reentering round" body += "
" body += "" From 0c60294c0f6ba73cbc37b2ed15a18bf9f9970170 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 26 Mar 2020 16:21:10 -0700 Subject: [PATCH 31/75] does the quirky thing where a beam with origin/target in a container doesn't cut the map in half because byond is quirky and things inside things are x/y/z=0 (#11585) * Update beam.dm * god i hate this * Update beam.dm * ok * touching kevinz PR in an inappropriate way. Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/datums/beam.dm | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/code/datums/beam.dm b/code/datums/beam.dm index 2622b6ae39..6a9878e086 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -9,8 +9,8 @@ var/max_distance = 0 var/sleep_time = 3 var/finished = 0 - var/target_oldloc = null - var/origin_oldloc = null + var/turf/target_oldloc + var/turf/origin_oldloc var/static_beam = 0 var/beam_type = /obj/effect/ebeam //must be subtype var/timing_id = null @@ -23,13 +23,13 @@ target_oldloc = get_turf(target) sleep_time = beam_sleep_time if(origin_oldloc == origin && target_oldloc == target) - static_beam = 1 + static_beam = TRUE max_distance = maxdistance base_icon = new(beam_icon,beam_icon_state) icon = beam_icon icon_state = beam_icon_state beam_type = btype - if(time < INFINITY) + if(time < INFINITY) addtimer(CALLBACK(src,.proc/End), time) /datum/beam/proc/Start() @@ -42,10 +42,14 @@ return recalculating = TRUE timing_id = null - if(origin && target && get_dist(origin,target) Date: Thu, 26 Mar 2020 18:21:12 -0500 Subject: [PATCH 32/75] Automatic changelog generation for PR #11585 [ci skip] --- html/changelogs/AutoChangeLog-pr-11585.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11585.yml diff --git a/html/changelogs/AutoChangeLog-pr-11585.yml b/html/changelogs/AutoChangeLog-pr-11585.yml new file mode 100644 index 0000000000..78390b808e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11585.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - bugfix: "beams should no longer go across the map and mess everything up if their source or target isn't on a turf." From 9c1d6b46b420d9e983be9ffd8ac8fb483934c4c7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 26 Mar 2020 20:53:46 -0500 Subject: [PATCH 33/75] Automatic changelog generation for PR #11633 [ci skip] --- html/changelogs/AutoChangeLog-pr-11633.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11633.yml diff --git a/html/changelogs/AutoChangeLog-pr-11633.yml b/html/changelogs/AutoChangeLog-pr-11633.yml new file mode 100644 index 0000000000..87ba396950 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11633.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - tweak: "Blacklists unsynthetizable reagents from botany bees honey production." From dab993a6a790e555d64cf0cec70803b9fa1762b2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 26 Mar 2020 20:56:28 -0500 Subject: [PATCH 34/75] Automatic changelog generation for PR #11632 [ci skip] --- html/changelogs/AutoChangeLog-pr-11632.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11632.yml diff --git a/html/changelogs/AutoChangeLog-pr-11632.yml b/html/changelogs/AutoChangeLog-pr-11632.yml new file mode 100644 index 0000000000..01114f0772 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11632.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - tweak: "Chaplains are now inelegible for bloodsuckers." From 3a494e3a851d2e60400ae3cdc09b813ce7e72ea4 Mon Sep 17 00:00:00 2001 From: Putnam Date: Thu, 26 Mar 2020 19:50:13 -0700 Subject: [PATCH 35/75] Fixes an exploit involving WRAP. --- code/__DEFINES/maths.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm index 939f6698cb..b8a6ae1419 100644 --- a/code/__DEFINES/maths.dm +++ b/code/__DEFINES/maths.dm @@ -30,7 +30,7 @@ #define FLOOR(x, y) ( round((x) / (y)) * (y) ) // Similar to clamp but the bottom rolls around to the top and vice versa. min is inclusive, max is exclusive -#define WRAP(val, min, max) ( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ) +#define WRAP(val, min, max) CLAMP(( min == max ? min : (val) - (round(((val) - (min))/((max) - (min))) * ((max) - (min))) ),min,max-1) // Real modulus that handles decimals #define MODULUS(x, y) ( (x) - (y) * round((x) / (y)) ) @@ -201,4 +201,4 @@ #define RULE_OF_THREE(a, b, x) ((a*x)/b) // ) -#define MANHATTAN_DISTANCE(a, b) (abs(a.x - b.x) + abs(a.y - b.y)) \ No newline at end of file +#define MANHATTAN_DISTANCE(a, b) (abs(a.x - b.x) + abs(a.y - b.y)) From 879b626cd1cdd23bd431a9a4465dad7839ef986b Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Fri, 27 Mar 2020 03:12:04 -0400 Subject: [PATCH 36/75] Et tu --- .../food_and_drinks/food/snacks_salad.dm | 9 +++++++++ .../recipes/tablecraft/recipes_salad.dm | 10 ++++++++++ code/modules/hydroponics/grown/misc.dm | 2 -- icons/obj/food/soupsalad.dmi | Bin 20805 -> 21242 bytes 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm index e272733235..a977eac3c2 100644 --- a/code/modules/food_and_drinks/food/snacks_salad.dm +++ b/code/modules/food_and_drinks/food/snacks_salad.dm @@ -116,3 +116,12 @@ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("rice" = 1, "egg" = 1) foodtype = GRAIN | MEAT //EGG = MEAT -NinjaNomNom 2017 + +/obj/item/reagent_containers/food/snacks/salad/caesar + name = "caesar salad" + desc = "You too?" + icon_state = "ceasar_salad" + trash = /obj/item/kitchen/knife + bonus_reagents = list(/datum/reagent/medicine/earthsblood = 1, /datum/reagent/iron = 4) + tastes = list("iron" = 1, "conspiracy" = 1) + foodtype = VEGETABLES \ No newline at end of file diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 0a44c4590e..4c942a0c2d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -84,3 +84,13 @@ ) result = /obj/item/reagent_containers/food/snacks/salad/validsalad subcategory = CAT_SALAD + +/datum/crafting_recipe/food/caesarsalad + name = "Caesar salad" + reqs = list( + /obj/item/kitchen/knife = 1, + /obj/item/reagent_containers/food/snacks/grown/ambrosia/gaia = 1, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 1 + ) + result = /obj/item/reagent_containers/food/snacks/salad/caesar + subcategory = CAT_SALAD \ No newline at end of file diff --git a/code/modules/hydroponics/grown/misc.dm b/code/modules/hydroponics/grown/misc.dm index 6ebfd3254f..aed6cbf93f 100644 --- a/code/modules/hydroponics/grown/misc.dm +++ b/code/modules/hydroponics/grown/misc.dm @@ -98,8 +98,6 @@ wine_power = 35 tastes = list("thistle" = 2, "artichoke" = 1) - - // Cabbage /obj/item/seeds/cabbage name = "pack of cabbage seeds" diff --git a/icons/obj/food/soupsalad.dmi b/icons/obj/food/soupsalad.dmi index a6e492608f4ca5efa46619f8df2ddb799a2fddba..fd47e89aa8f90bd1c257301fc25ad84105d3da83 100644 GIT binary patch delta 3375 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 From aa07bf262a3191c96ed383b2fa4da6896cf81056 Mon Sep 17 00:00:00 2001 From: BlackMajor Date: Fri, 27 Mar 2020 20:32:53 +1300 Subject: [PATCH 37/75] lmao one line fix --- code/game/objects/structures/crates_lockers/closets.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 71fcef753c..a9e7347657 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -441,7 +441,7 @@ /obj/structure/closet/relaymove(mob/user) if(user.stat || !isturf(loc) || !isliving(user)) return - if(locked) + if(locked || welded) if(message_cooldown <= world.time) message_cooldown = world.time + 50 to_chat(user, "[src]'s door won't budge!") From 593356348517677c9a900329a89c75d0b7bd9019 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 27 Mar 2020 13:43:28 +0100 Subject: [PATCH 38/75] one line fix to a box mapping issue --- _maps/map_files/BoxStation/BoxStation.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 82bfb49e38..d09ac36997 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -5903,7 +5903,7 @@ "alq" = ( /obj/machinery/door/airlock/security/glass{ name = "Evidence Storage"; - req_access_txt = "1" + req_access_txt = "4" }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, From 1a6107a51846085dcc24fca70d3acf82049699c7 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Fri, 27 Mar 2020 06:03:05 -0700 Subject: [PATCH 39/75] Removed nymphomania, plus code cleanup (#11641) --- code/controllers/subsystem/processing/quirks.dm | 6 +++--- code/datums/traits/neutral.dm | 8 -------- code/modules/client/preferences_savefile.dm | 1 - 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 5aeaf43bab..c57bac5526 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -37,11 +37,11 @@ PROCESSING_SUBSYSTEM_DEF(quirks) if(job?.blacklisted_quirks) cut = filter_quirks(my_quirks, job.blacklisted_quirks) for(var/V in my_quirks) - var/datum/quirk/Q = quirks[V] - if(Q) + if(V in quirks) + var/datum/quirk/Q = quirks[V] user.add_quirk(Q, spawn_effects) else - stack_trace("Invalid quirk \"[V]\" in client [cli.ckey] preferences") + log_admin("Invalid quirk \"[V]\" in client [cli.ckey] preferences") cli.prefs.all_quirks -= V badquirk = TRUE if(badquirk) diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index ab2a69e7e9..d1b5240798 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -88,14 +88,6 @@ if(quirk_holder) quirk_holder.remove_client_colour(/datum/client_colour/monochrome) -/datum/quirk/libido - name = "Nymphomania" - desc = "You're always feeling a bit in heat. Also, you get aroused faster than usual." - value = 0 - mob_trait = TRAIT_PERMABONER - gain_text = "You are feeling extra wild." - lose_text = "You don't feel that burning sensation anymore." - /datum/quirk/maso name = "Masochism" desc = "You are aroused by pain." diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 749ac8c6db..7858bc099b 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -438,7 +438,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //Citadel code S["feature_genitals_use_skintone"] >> features["genitals_use_skintone"] - S["feature_exhibitionist"] >> features["exhibitionist"] S["feature_mcolor2"] >> features["mcolor2"] S["feature_mcolor3"] >> features["mcolor3"] S["feature_mam_body_markings"] >> features["mam_body_markings"] From bff77480d1d34172e3356ff938fb69c2c977ae78 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 27 Mar 2020 08:03:08 -0500 Subject: [PATCH 40/75] Automatic changelog generation for PR #11641 [ci skip] --- html/changelogs/AutoChangeLog-pr-11641.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11641.yml diff --git a/html/changelogs/AutoChangeLog-pr-11641.yml b/html/changelogs/AutoChangeLog-pr-11641.yml new file mode 100644 index 0000000000..27729e62e6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11641.yml @@ -0,0 +1,6 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscdel: "Nymphomania removed" + - code_imp: "Exhibitionism ignored by preferences now, since it was also removed" + - code_imp: "Quirk migration now does an admin log instead of a stack trace" From f7ce5e5de320f8dba8c84b6a48063ff28d968d09 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 27 Mar 2020 14:42:23 +0100 Subject: [PATCH 41/75] infiltrator sneaky shoes fix. --- code/__DEFINES/traits.dm | 1 + code/modules/clothing/shoes/miscellaneous.dm | 10 +++++++++- code/modules/ninja/suit/shoes.dm | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 4f4b7c6baa..7bcdded17b 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -236,6 +236,7 @@ #define APHRO_TRAIT "aphro" #define BLOODSUCKER_TRAIT "bloodsucker" #define CLOTHING_TRAIT "clothing" //used for quirky carrygloves +#define SHOES_TRAIT "shoes" //inherited from your sweet kicks // unique trait sources, still defines #define STATUE_MUTE "statue" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 519e4e7fcd..32d9dd4483 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -25,7 +25,15 @@ icon_state = "sneakboots" item_state = "sneakboots" resistance_flags = FIRE_PROOF | ACID_PROOF - clothing_flags = TRAIT_SILENT_STEP + +/obj/item/clothing/shoes/combat/sneakboots/equipped(mob/user, slot) + . = ..() + if(slot == SLOT_SHOES) + ADD_TRAIT(user, TRAIT_SILENT_STEP, SHOES_TRAIT) + +/obj/item/clothing/shoes/combat/sneakboots/dropped(mob/user) + . = ..() + REMOVE_TRAIT(user, TRAIT_SILENT_STEP, SHOES_TRAIT) /obj/item/clothing/shoes/combat/swat //overpowered boots for death squads name = "\improper SWAT boots" diff --git a/code/modules/ninja/suit/shoes.dm b/code/modules/ninja/suit/shoes.dm index 1bda62e064..f2227b5f9f 100644 --- a/code/modules/ninja/suit/shoes.dm +++ b/code/modules/ninja/suit/shoes.dm @@ -15,8 +15,8 @@ /obj/item/clothing/shoes/space_ninja/equipped(mob/user, slot) . = ..() if(slot == SLOT_SHOES) - ADD_TRAIT(user, TRAIT_SILENT_STEP, "ninja_shoes_[REF(src)]") + ADD_TRAIT(user, TRAIT_SILENT_STEP, SHOES_TRAIT) /obj/item/clothing/shoes/space_ninja/dropped(mob/user) . = ..() - REMOVE_TRAIT(user, TRAIT_SILENT_STEP, "ninja_shoes_[REF(src)]") + REMOVE_TRAIT(user, TRAIT_SILENT_STEP, SHOES_TRAIT) From 9ab0cccdec391240764b6e2fff718ab4eda41bd1 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 27 Mar 2020 19:52:33 +0100 Subject: [PATCH 42/75] porting stuff --- code/modules/client/client_defines.dm | 4 +++ code/modules/client/client_procs.dm | 36 +++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 2bdb743fc7..1deb702de4 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -14,6 +14,10 @@ var/jobbancache = null //Used to cache this client's jobbans to save on DB queries var/last_message = "" //Contains the last message sent by this client - used to protect against copy-paste spamming. var/last_message_count = 0 //contins a number of how many times a message identical to last_message was sent. + ///How many messages sent in the last 10 seconds + var/total_message_count = 0 + ///Next tick to reset the total message counter + var/total_count_reset = 0 var/ircreplyamount = 0 ///////// diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 84096b1367..74885d0ac0 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -141,7 +141,43 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( return 0 return 1 +/* + * Call back proc that should be checked in all paths where a client can send messages + * + * Handles checking for duplicate messages and people sending messages too fast + * + * The first checks are if you're sending too fast, this is defined as sending + * SPAM_TRIGGER_AUTOMUTE messages in + * 5 seconds, this will start supressing your messages, + * if you send 2* that limit, you also get muted + * + * The second checks for the same duplicate message too many times and mutes + * you for it + */ /client/proc/handle_spam_prevention(message, mute_type) + + //Increment message count + total_message_count += 1 + + //store the total to act on even after a reset + var/cache = total_message_count + + if(total_count_reset <= world.time) + total_message_count = 0 + total_count_reset = world.time + (5 SECONDS) + + //If they're really going crazy, mute them + if(cache >= SPAM_TRIGGER_AUTOMUTE * 2) + total_message_count = 0 + total_count_reset = 0 + cmd_admin_mute(src, mute_type, 1) + return 1 + + //Otherwise just supress the message + else if(cache >= SPAM_TRIGGER_AUTOMUTE) + return 1 + + if(CONFIG_GET(flag/automute_on) && !holder && last_message == message) src.last_message_count++ if(src.last_message_count >= SPAM_TRIGGER_AUTOMUTE) From 7b34ebc9b50c63d38bf4cdce5f1ed456670cbe3b Mon Sep 17 00:00:00 2001 From: ZeroMan Date: Fri, 27 Mar 2020 17:13:45 -0400 Subject: [PATCH 43/75] commit not alive immediately --- code/modules/mob/dead/observer/observer.dm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index fb478355e8..5f6a716051 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -380,6 +380,23 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp transfer_ckey(mind.current, FALSE) return 1 +/mob/dead/observer/verb/stay_dead() + set category = "Ghost" + set name = "Do Not Resuscitate" + if(!client) + return + if(!can_reenter_corpse) + to_chat(usr, "You're already stuck out of your body!") + return FALSE + + var/response = alert(src, "Are you sure you want to prevent (almost) all means of resuscitation? This cannot be undone. ","Are you sure you want to stay dead?","DNR","Save Me") + if(response != "DNR") + return + + can_reenter_corpse = FALSE + to_chat(src, "You can no longer be brought back into your body.") + return TRUE + /mob/dead/observer/proc/notify_cloning(var/message, var/sound, var/atom/source, flashwindow = TRUE) if(flashwindow) window_flash(client) From 41e2c60d4a4835e06be2739ed9a1a9c4d3b59c49 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 27 Mar 2020 22:52:43 +0100 Subject: [PATCH 44/75] Ports "Makes raw HTML and browser datum popups UTF-8 aware" --- code/datums/browser.dm | 4 ++-- code/datums/datumvars.dm | 1 + code/datums/elements/flavor_text.dm | 2 +- code/game/gamemodes/clock_cult/clock_cult.dm | 2 +- code/game/gamemodes/dynamic/dynamic.dm | 12 ++++++------ code/game/machinery/camera/camera.dm | 4 ++-- .../machinery/telecomms/machines/message_server.dm | 2 +- code/game/mecha/combat/honker.dm | 4 +++- code/game/mecha/equipment/tools/medical_tools.dm | 2 ++ code/game/mecha/mech_fabricator.dm | 3 ++- code/game/mecha/mecha_control_console.dm | 2 +- code/game/mecha/mecha_topic.dm | 11 ++++++++--- code/game/objects/items/blueprints.dm | 3 ++- code/game/objects/items/devices/PDA/PDA.dm | 4 ++-- code/game/objects/items/manuals.dm | 10 ++++++++++ code/game/objects/items/storage/book.dm | 2 +- code/game/objects/structures/safe.dm | 2 +- code/modules/admin/admin.dm | 2 +- code/modules/admin/check_antagonists.dm | 2 +- code/modules/admin/permissionedit.dm | 4 +++- code/modules/admin/player_panel.dm | 2 +- code/modules/admin/verbs/adminhelp.dm | 4 ++-- code/modules/admin/verbs/randomverbs.dm | 6 +++--- .../antagonists/wizard/equipment/spellbook.dm | 2 +- code/modules/client/verbs/ooc.dm | 2 +- code/modules/events/holiday/vday.dm | 4 ++-- .../integrated_electronics/core/assemblies.dm | 2 +- .../core/integrated_circuit.dm | 2 +- code/modules/mapping/minimaps.dm | 3 ++- code/modules/mob/dead/new_player/new_player.dm | 2 +- code/modules/mob/dead/new_player/poll.dm | 3 ++- code/modules/mob/living/silicon/pai/software.dm | 3 ++- code/modules/mob/living/silicon/silicon.dm | 2 +- code/modules/paperwork/filingcabinet.dm | 2 +- code/modules/paperwork/paper.dm | 8 ++++---- code/modules/photography/photos/photo.dm | 2 +- 36 files changed, 77 insertions(+), 50 deletions(-) diff --git a/code/datums/browser.dm b/code/datums/browser.dm index 0b784328ab..8b82c1812e 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -72,9 +72,9 @@ return {" - - + + [head_content] diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index a9830e58dc..81db7deb68 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -175,6 +175,7 @@ var/html = {" + [title] " + var/dat = "[src.name]" if(screen == 0) dat += "

Tracking beacons data

" var/list/trackerlist = list() diff --git a/code/game/mecha/mecha_topic.dm b/code/game/mecha/mecha_topic.dm index 774e30fa5d..8d6328cf08 100644 --- a/code/game/mecha/mecha_topic.dm +++ b/code/game/mecha/mecha_topic.dm @@ -5,7 +5,9 @@ /obj/mecha/proc/get_stats_html() . = {" - [src.name] data + + + [name] data " + var/dat = "Personal Data Assistant" dat += assets.css_tag() dat += emoji_s.css_tag() @@ -1192,7 +1192,7 @@ GLOBAL_LIST_EMPTY(PDAs) if(incapacitated()) return if(!isnull(aiPDA)) - var/HTML = "AI PDA Message Log[aiPDA.tnote]" + var/HTML = "AI PDA Message Log[aiPDA.tnote]" user << browse(HTML, "window=log;size=400x444;border=1;can_resize=1;can_close=1;can_minimize=0") else to_chat(user, "You do not have a PDA. You should make an issue report about this.") diff --git a/code/game/objects/items/manuals.dm b/code/game/objects/items/manuals.dm index 9631488397..210c3d0da0 100644 --- a/code/game/objects/items/manuals.dm +++ b/code/game/objects/items/manuals.dm @@ -14,6 +14,7 @@ //book contents below dat = {" +