From 9efdad1d6b980d4b6e237c360835649c1aebfff8 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 3 Mar 2020 13:55:33 -0500 Subject: [PATCH 01/12] Initial commit - lays out the foundation for a more robust limb icon override system. You're welcome. --- code/__DEFINES/mobs.dm | 2 + code/game/machinery/limbgrower.dm | 3 +- .../mob/living/carbon/human/species.dm | 2 +- .../carbon/human/species_types/bugmen.dm | 2 +- .../carbon/human/species_types/furrypeople.dm | 4 +- .../living/carbon/human/species_types/ipc.dm | 2 +- code/modules/surgery/bodyparts/bodyparts.dm | 54 ++++++++----------- 7 files changed, 30 insertions(+), 39 deletions(-) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index dc67de3150..c1686560d6 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -58,8 +58,10 @@ #define BODYPART_DISABLED_DAMAGE 1 #define BODYPART_DISABLED_PARALYSIS 2 +#define DEFAULT_BODYPART_ICON 'icons/mob/human_parts.dmi' #define DEFAULT_BODYPART_ICON_ORGANIC 'icons/mob/human_parts_greyscale.dmi' #define DEFAULT_BODYPART_ICON_ROBOTIC 'icons/mob/augmentation/augments.dmi' +#define DEFAULT_BODYPART_ICON_CITADEL 'modular_citadel/icons/mob/mutant_bodyparts.dmi' #define MONKEY_BODYPART "monkey" #define ALIEN_BODYPART "alien" diff --git a/code/game/machinery/limbgrower.dm b/code/game/machinery/limbgrower.dm index 28afea817b..f77cf3adfb 100644 --- a/code/game/machinery/limbgrower.dm +++ b/code/game/machinery/limbgrower.dm @@ -138,7 +138,8 @@ limb = new buildpath(loc) if(selected_category=="human" || selected_category=="lizard") //Species with greyscale parts should be included here limb.icon = 'icons/mob/human_parts_greyscale.dmi' - limb.should_draw_greyscale = TRUE + limb.base_bp_icon = DEFAULT_BODYPART_ICON_ORGANIC + limb.color_src = MUTCOLORS else limb.icon = 'icons/mob/human_parts.dmi' // Set this limb up using the specias name and body zone diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index b1bc47ea4a..917317262c 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -104,7 +104,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/fixed_mut_color3 = "" var/whitelisted = 0 //Is this species restricted to certain players? var/whitelist = list() //List the ckeys that can use this species, if it's whitelisted.: list("John Doe", "poopface666", "SeeALiggerPullTheTrigger") Spaces & capitalization can be included or ignored entirely for each key as it checks for both. - var/should_draw_citadel = FALSE + var/icon_limbs //Overrides the icon used for the limbs of this species. Mainly for downstream, and also because hardcoded icons disgust me. Implemented and maintained as a favor in return for a downstream's implementation of synths. /////////// // PROCS // diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index e2e41330fb..6bd8a44e0a 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -13,7 +13,7 @@ meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/insect liked_food = MEAT | FRUIT disliked_food = TOXIC - should_draw_citadel = TRUE + icon_limbs = DEFAULT_BODYPART_ICON_CITADEL /datum/species/insect/spec_death(gibbed, mob/living/carbon/human/H) if(H) diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm index ab86b2cc5d..608d71e2c5 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/furrypeople.dm @@ -2,7 +2,7 @@ name = "Anthromorph" id = "mammal" default_color = "4B4B4B" - should_draw_citadel = TRUE + icon_limbs = DEFAULT_BODYPART_ICON_CITADEL species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,HORNCOLOR,WINGCOLOR) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BEAST mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "deco_wings", "taur", "horns", "legs") @@ -55,7 +55,7 @@ id = "xeno" say_mod = "hisses" default_color = "00FF00" - should_draw_citadel = TRUE + icon_limbs = DEFAULT_BODYPART_ICON_CITADEL species_traits = list(MUTCOLORS,EYECOLOR,LIPS) mutant_bodyparts = list("xenotail", "xenohead", "xenodorsal", "mam_body_markings", "taur", "legs") default_features = list("xenotail"="Xenomorph Tail","xenohead"="Standard","xenodorsal"="Standard", "mam_body_markings" = "Xeno","mcolor" = "0F0","mcolor2" = "0F0","mcolor3" = "0F0","taur" = "None", "legs" = "Digitigrade") diff --git a/code/modules/mob/living/carbon/human/species_types/ipc.dm b/code/modules/mob/living/carbon/human/species_types/ipc.dm index add0e17c43..b7305a9228 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -3,7 +3,7 @@ id = "ipc" say_mod = "beeps" default_color = "00FF00" - should_draw_citadel = TRUE + icon_limbs = DEFAULT_BODYPART_ICON_CITADEL blacklisted = 0 sexes = 0 species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index c9affe92f9..b3d55f9af4 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -41,9 +41,9 @@ var/skin_tone = "" var/body_gender = "" var/species_id = "" - var/should_draw_citadel = FALSE + var/color_src + var/base_bp_icon //Overrides the icon being used for this limb. This is mainly for downstreams, implemented and maintained as a favor in return for implementing synths. And also because should_draw_* for icon overrides was pretty messy. You're welcome. var/should_draw_gender = FALSE - var/should_draw_greyscale = FALSE var/species_color = "" var/mutation_color = "" var/no_update = 0 @@ -283,9 +283,9 @@ if(change_icon_to_default) if(status == BODYPART_ORGANIC) - icon = DEFAULT_BODYPART_ICON_ORGANIC + icon = base_bp_icon ? base_bp_icon : DEFAULT_BODYPART_ICON_ORGANIC else if(status == BODYPART_ROBOTIC) - icon = DEFAULT_BODYPART_ICON_ROBOTIC + icon = base_bp_icon ? base_bp_icon : DEFAULT_BODYPART_ICON_ROBOTIC if(owner) owner.updatehealth() @@ -313,7 +313,8 @@ species_id = "husk" //overrides species_id dmg_overlay_type = "" //no damage overlay shown when husked should_draw_gender = FALSE - should_draw_greyscale = FALSE + color_src = FALSE + base_bp_icon = DEFAULT_BODYPART_ICON no_update = TRUE body_markings = "husk" // reeee aux_marking = "husk" @@ -323,11 +324,11 @@ if(!animal_origin) var/mob/living/carbon/human/H = C - should_draw_greyscale = FALSE + color_src = FALSE var/datum/species/S = H.dna.species + base_bp_icon = S.icon_limbs ? S.icon_limbs : DEFAULT_BODYPART_ICON species_id = S.limbs_id - should_draw_citadel = S.should_draw_citadel // Citadel Addition species_flags_list = H.dna.species.species_traits //body marking memes @@ -342,7 +343,7 @@ if(S.use_skintones) skin_tone = H.skin_tone - should_draw_greyscale = TRUE + base_bp_icon = (base_bp_icon == DEFAULT_BODYPART_ICON) ? DEFAULT_BODYPART_ICON_ORGANIC : base_bp_icon else skin_tone = "" @@ -354,9 +355,12 @@ species_color = S.fixed_mut_color else species_color = H.dna.features["mcolor"] - should_draw_greyscale = TRUE + base_bp_icon = (base_bp_icon == DEFAULT_BODYPART_ICON) ? DEFAULT_BODYPART_ICON_ORGANIC : base_bp_icon else species_color = "" + + if(base_bp_icon != DEFAULT_BODYPART_ICON) + color_src = MUTCOLORS //TODO - Add color matrix support to base limbs if("legs" in S.default_features) if(body_zone == BODY_ZONE_L_LEG || body_zone == BODY_ZONE_R_LEG) @@ -462,32 +466,16 @@ should_draw_gender = FALSE if(is_organic_limb()) - if(should_draw_greyscale) - limb.icon = 'icons/mob/human_parts_greyscale.dmi' - if(should_draw_gender) - limb.icon_state = "[species_id]_[body_zone]_[icon_gender]" - else if(use_digitigrade) + limb.icon = base_bp_icon ? base_bp_icon : 'icons/mob/human_parts.dmi' + if(should_draw_gender) + limb.icon_state = "[species_id]_[body_zone]_[icon_gender]" + else if (use_digitigrade) + if(base_bp_icon == DEFAULT_BODYPART_ICON_ORGANIC) //Compatibility hack for the current iconset. limb.icon_state = "[digitigrade_type]_[use_digitigrade]_[body_zone]" else - limb.icon_state = "[species_id]_[body_zone]" + limb.icon_state = "[species_id]_[digitigrade_type]_[use_digitigrade]_[body_zone]" else - limb.icon = 'icons/mob/human_parts.dmi' - if(should_draw_gender) - limb.icon_state = "[species_id]_[body_zone]_[icon_gender]" - else if(use_digitigrade) - limb.icon_state = "[species_id]_[digitigrade_type]_[use_digitigrade]_[body_zone]" - else - limb.icon_state = "[species_id]_[body_zone]" - - // Citadel Start - if(should_draw_citadel) - limb.icon = 'modular_citadel/icons/mob/mutant_bodyparts.dmi' - if(should_draw_gender) - limb.icon_state = "[species_id]_[body_zone]_[icon_gender]" - else if(use_digitigrade) - limb.icon_state = "[species_id]_[digitigrade_type]_[use_digitigrade]_[body_zone]" - else - limb.icon_state = "[species_id]_[body_zone]" + limb.icon_state = "[species_id]_[body_zone]" // Body markings if(!isnull(body_markings)) @@ -555,7 +543,7 @@ . += marking return - if(should_draw_greyscale) + if(color_src) //TODO - add color matrix support for base species limbs var/draw_color = mutation_color || species_color || (skin_tone && skintone2hex(skin_tone)) if(draw_color) limb.color = "#[draw_color]" From 560192c45aa862c2bc22c1f1c0b9c352b98a276b Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 3 Mar 2020 15:49:25 -0500 Subject: [PATCH 02/12] Does the thing - PORTS THE BEEPERS! also fixes a bug where body markings dont render if their name doesnt match the iconstate --- .../new_player/sprite_accessories/synthliz.dm | 114 ++++++++++++++++++ .../carbon/human/species_types/synthliz.dm | 51 ++++++++ code/modules/surgery/bodyparts/bodyparts.dm | 4 +- config/game_options.txt | 1 + .../icons/mob/mutant_bodyparts.dmi | Bin 7023 -> 8936 bytes .../icons/mob/synthliz_antennas.dmi | Bin 0 -> 1534 bytes .../icons/mob/synthliz_body_markings.dmi | Bin 0 -> 1567 bytes modular_citadel/icons/mob/synthliz_snouts.dmi | Bin 0 -> 781 bytes modular_citadel/icons/mob/synthliz_tails.dmi | Bin 0 -> 1888 bytes tgstation.dme | 2 + 10 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm create mode 100644 code/modules/mob/living/carbon/human/species_types/synthliz.dm create mode 100644 modular_citadel/icons/mob/synthliz_antennas.dmi create mode 100644 modular_citadel/icons/mob/synthliz_body_markings.dmi create mode 100644 modular_citadel/icons/mob/synthliz_snouts.dmi create mode 100644 modular_citadel/icons/mob/synthliz_tails.dmi diff --git a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm new file mode 100644 index 0000000000..21ba17cf40 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm @@ -0,0 +1,114 @@ +//Synth snouts (This is the most important part) +/datum/sprite_accessory/mam_snouts/synthliz/synthliz_basic + icon = 'modular_citadel/icons/mob/synthliz_snouts.dmi' + color_src = MUTCOLORS + name = "Synthetic Lizard - Snout" + icon_state = "synthliz_basic" + +/datum/sprite_accessory/mam_snouts/synthliz/synthliz_under + icon = 'modular_citadel/icons/mob/synthliz_snouts.dmi' + color_src = MATRIXED + name = "Synthetic Lizard - Snout Under" + icon_state = "synthliz_under" + +/datum/sprite_accessory/mam_snouts/synthliz/synthliz_tert + icon = 'modular_citadel/icons/mob/synthliz_snouts.dmi' + color_src = MATRIXED + name = "Synthetic Lizard - Snout Tertiary" + icon_state = "synthliz_tert" + +/datum/sprite_accessory/mam_snouts/synthliz/synthliz_tertunder + icon = 'modular_citadel/icons/mob/synthliz_snouts.dmi' + color_src = MATRIXED + name = "Synthetic Lizard - Snout Tertiary Under" + icon_state = "synthliz_tertunder" + +//Synth body markings +/datum/sprite_accessory/mam_body_markings/synthliz/synthliz_scutes + icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi' + name = "Synthetic Lizard - Plates" + icon_state = "synthlizscutes" + +/datum/sprite_accessory/mam_body_markings/synthliz/synthliz_pecs + icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi' + name = "Synthetic Lizard - Pecs" + icon_state = "synthlizpecs" + +/datum/sprite_accessory/mam_body_markings/synthliz/synthliz_pecslight + icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi' + name = "Synthetic Lizard - Pecs Light" + icon_state = "synthlizpecslight" + +//Synth tails +/datum/sprite_accessory/mam_tails/synthliz/synthliz_tail + icon = 'modular_citadel/icons/mob/synthliz_tails.dmi' + color_src = MUTCOLORS + name = "Synthetic Lizard" + icon_state = "synthliz" + +/datum/sprite_accessory/mam_tails_animated/synthliz/synthliz_tail + icon = 'modular_citadel/icons/mob/synthliz_tails.dmi' + color_src = MUTCOLORS + name = "Synthetic Lizard" + icon_state = "synthliz" + +//Synth Antennae +/datum/sprite_accessory/antenna/synthliz/synthliz_none + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MUTCOLORS + name = "None" + icon_state = "None" + +/datum/sprite_accessory/antenna/synthliz/synthliz_antennae + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MUTCOLORS + name = "Synthetic Lizard - Antennae" + icon_state = "synth_antennae" + +/datum/sprite_accessory/antenna/synthliz/synthliz_curled + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MUTCOLORS + name = "Synthetic Lizard - Curled" + icon_state = "synth_curled" + +/datum/sprite_accessory/antenna/synthliz/synthliz_thick + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MUTCOLORS + name = "Synthetic Lizard - Thick" + icon_state = "synth_thick" + +/datum/sprite_accessory/antenna/synthliz/synth_thicklight + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MATRIXED + name = "Synthetic Lizard - Thick Light" + icon_state = "synth_thicklight" + +/datum/sprite_accessory/antenna/synthliz/synth_short + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MUTCOLORS + name = "Synthetic Lizard - Short" + icon_state = "synth_short" + +/datum/sprite_accessory/antenna/synthliz/synth_sharp + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MUTCOLORS + name = "Synthetic Lizard - Sharp" + icon_state = "synth_sharp" + +/datum/sprite_accessory/antenna/synthliz/synth_sharplight + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MATRIXED + name = "Synthetic Lizard - Sharp Light" + icon_state = "synth_sharplight" + +/datum/sprite_accessory/antenna/synthliz/synth_horns + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MUTCOLORS + name = "Synthetic Lizard - Horns" + icon_state = "synth_horns" + +/datum/sprite_accessory/antenna/synthliz/synth_hornslight + icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' + color_src = MATRIXED + name = "Synthetic Lizard - Horns Light" + icon_state = "synth_hornslight" diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm new file mode 100644 index 0000000000..47bd3cdaf5 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -0,0 +1,51 @@ +/datum/species/synthliz + name = "Synthetic Lizardperson" + id = "synthliz" + icon_limbs = DEFAULT_BODYPART_ICON_CITADEL + say_mod = "beeps" + default_color = "00FF00" + species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR) + inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID + mutant_bodyparts = list("ipc_antenna","mam_tail", "mam_snouts","legs", "mam_body_markings") + default_features = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates") + meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc + gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) + mutanttongue = /obj/item/organ/tongue/robot/ipc + //Just robo looking parts. + mutant_heart = /obj/item/organ/heart/ipc + mutantlungs = /obj/item/organ/lungs/ipc + mutantliver = /obj/item/organ/liver/ipc + mutantstomach = /obj/item/organ/stomach/ipc + mutanteyes = /obj/item/organ/eyes/ipc + + +/datum/species/synthliz/qualifies_for_rank(rank, list/features) + return TRUE + +//I wag in death +/datum/species/synthliz/spec_death(gibbed, mob/living/carbon/human/H) + if(H) + stop_wagging_tail(H) + +/datum/species/synthliz/spec_stun(mob/living/carbon/human/H,amount) + if(H) + stop_wagging_tail(H) + . = ..() + +/datum/species/synthliz/can_wag_tail(mob/living/carbon/human/H) + return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + +/datum/species/synthliz/is_wagging_tail(mob/living/carbon/human/H) + return ("mam_waggingtail" in mutant_bodyparts) + +/datum/species/synthliz/start_wagging_tail(mob/living/carbon/human/H) + if("mam_tail" in mutant_bodyparts) + mutant_bodyparts -= "mam_tail" + mutant_bodyparts |= "mam_waggingtail" + H.update_body() + +/datum/species/synthliz/stop_wagging_tail(mob/living/carbon/human/H) + if("mam_waggingtail" in mutant_bodyparts) + mutant_bodyparts -= "mam_waggingtail" + mutant_bodyparts |= "mam_tail" + H.update_body() \ No newline at end of file diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index b3d55f9af4..76beea5082 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -375,8 +375,8 @@ if(Smark) body_markings_icon = Smark.icon if(H.dna.features["mam_body_markings"] != "None") - body_markings = lowertext(H.dna.features["mam_body_markings"]) - aux_marking = lowertext(H.dna.features["mam_body_markings"]) + body_markings = Smark.icon_state ? Smark.icon_state : lowertext(H.dna.features["mam_body_markings"]) + aux_marking = Smark.icon_state ? Smark.icon_state : lowertext(H.dna.features["mam_body_markings"]) else body_markings = "plain" aux_marking = "plain" diff --git a/config/game_options.txt b/config/game_options.txt index b2b0ac0abd..26c55a0c43 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -421,6 +421,7 @@ ROUNDSTART_RACES human ## Races that are strictly worse than humans that could probably be turned on without balance concerns ROUNDSTART_RACES lizard +ROUNDSTART_RACES synthliz #ROUNDSTART_RACES fly #ROUNDSTART_RACES insect ROUNDSTART_RACES plasmaman diff --git a/modular_citadel/icons/mob/mutant_bodyparts.dmi b/modular_citadel/icons/mob/mutant_bodyparts.dmi index 8ff4a3ddb57bd498850bbdabcaea94bd2770e557..f2787db632fd8f57895738f3e4b5a734f3cd7647 100644 GIT binary patch literal 8936 zcmaKR2UJr{w{{YG6Ql|%Rq0i#2n3L>(vc=rK&b&ikeY}Hh#;u+7J3mSA{~JsQUs(4 zN+#TF;nVCH^XYaN5o@ZW}8tXIB^UwnT0475N9diHx z1S3Drv=n4S%3AO}`9(6lYpF|ub#!%gkw~QJ>FJr7nS+A^G#dT$=g*Cejg^&^&d$!m z!^6|l)3vp=g@uK^y}gEp1}qjkJUomWo(!C-J$SeToe8x#uF z)zuXj7thPf3keBnE+Wm%%@r0FHa9m94GnE=Z4C?z^z`(QLL-twNu<#5gium#ZSA{v z@5qb#_U#)BGrgsr@|Q1P+S}WkO5)R@9&g{it*NOYg+^*!W6h5tFE+%~)bxEQ>E6A2 zqobqN*4AxpZM?j^qN1XVjEtO|oaW}{0<83vm6hGy-4ql|V`F1)-n-~x06q`AD^;1(6V=Jet zPn(T6Ap_44KE4fBm{hg-x!%$8zFdt~wV%rd67Rhy+QyAlpFYb?{UYfuQ1>oNR3spk z+g^D|W!lE}!&<145yJh9ShK9)%C-RTHvi-mr#!ys|5T#nr8gI&&&zbHo>A9Nb>DQU z+|6QaY|JXIgzzu?ThlhxOd5*~_*y`=-KmzJg#{oJ9pWw2nwp}frv@%~}GQ`Hqj$F(;zbLTy z<9Zl>p+f~*fUVM3_QWT*T@ClVv<+_+KOSjOT3C9J@HKcO{5zy+P*q21v5o0|z0p;k zAUL&#qkeIf5A1szjBVoE!pL!2&FF#WGu5-GOAJo{`1XRnt*f*uZi>l9FC0eQmBdRQ zG;>4>(EAIT^hj-;eSOj*3x512j|4bxZKkb1^LzAQa^!|j zks230^Axpp7s+2QFi`idYM}jMvgD5>4S~ALWqku)qr|IcR3~Y?+0`j{(dc6T^W~MaQJ~4Gf?6qdZsb z&uAq%`2S4)>IH9S?7o)IR0mXHU(!!~h}4C7;=vmbi0=uF;@Lh&lhg_H>$uZvs!6^b z#xtX4BZ7y+i^nu0^iRXKq5N(o6J(& zZtSCGPN&To+4;uw4s_>SeS{JRpo-S1Y@;cq@5Z~eQhJ)g&^Ps7Jh?SdY{239-0*|xh6YU z3huuF6mrUe+^A!c%-V-{PGIJtT{AFRmOpD)VI6U&IVvH|N!qC`hxY7n&Exkhl(d4z zuq^y_hLPbn6wR%TyVshk82l&tn9sFX8oNAfg=K0S3$g@FN$x4(U$-WH@9ocf?{obU zkSoP90=eFW;TL7V&p410u>s6(??QkYeq3 z)g0}RPmzDHaRUu^fL<5!N&(-KOWn}(h0z1+pCKv>e-fMoz>3&E_o0&pCCP85iT;kT zujzmgDxe2Poe=Klg~sED54^e&@8GeoYm)#k#<6ksbf)(UCg74C^mh(O1|T1gEXGyA zx@Kd4O3@UisO|IxRJE`1GG&uDgTJz9$H#=wXPoz^{q5^BlSNpN=22k>8lY60&=>Km zSz!!cSPQU|kFlDZ&S_|-2|pid#x6uUocA)2e*8F2BEwm?pfvjB^-Dl)U#JR6>1Va7 zu7)Vp4?Oq2g)al<7Fzn_;6!lK@h$bX7NUO@_Xs=x9{>J(-{WQV@FEMdt7R66>1kV#|dHQ@KwU3T=dlAKq;xS8%iUD!QD?Z|T&@ z#D#3hc82Ti?+-_DX#IxE>7;7pHr&W3O+Sq<8N=uk+GN)Y4&djjtf|t0n-_E=}>x$p{gA z87mE5FVK(j{X-xBs6+(Onm{}*w)0Mzp5Ve%wwTYDOM`cD*Ijv;PR9&GeVRz0(Cc>; zi4wsj>&p%&!9OX_dd3EsX(HvGKZdG)I-Vv5-EvK0Ize71Mr`&#yEToSd)qaq3XsJb zQ3O*WT|Bm&?REA+`TMK6O0%SN++pcu(oAp{r7)X35MGww@g`HN4xDHCD<141%-~;p z4tWK3YC$_u{h-#4xl5ROrVRWJ&>>zVi+P_w7IS#cl|Ysgj61x3g_J|-w*HRiM4n)5l%#VGy{vig>UHh#wykskGYMyE1G8H)$@oaJ zo#i$$YV$ag=}I1i%n|=4hW}lBV&W0_`_;|7i?|#=j$b#p^{lVP)_(@`URZu%ne;CQ zp~R||Sz+X(g*rHwVoRd| z-;HMYtmDn(qDl#g3$&kKTIM)+)?dy6QlKyA0J4BHbRbFt12+2pXUmvQRX=h6wQVRepQySwOjEhp1m-I#TP8-NWWT{5YI*$& z{06`9E*gBbgc7Q1Kt~KpN!254hGhe`yAcZ}z~MDD^$?(~OV*)huf_2>S&vzJI6W289>L1HvjZ?Apkv7xkl%`AQL(5#8LG@)@pPs+W>7$&#s7tOsXKVp#cT)3TT zRd_>x@UwUkH~I``APG;EFAz?tP|y6x-`L_Mth@XrauiT?9Nuw0 zdF$Yw-MHT@eDpffk0M#`yZ-mLf*oiZ#e(d=V_;9H%_%EpmsNYJy}#G&blh)1NPX7B z=XhM%*5aC^vBDt6-cNo8IAFFt&MIdtrl&IKl6!~b>%|9K(3 z0JiQ!8Yi`RChxs!VK8@Ub{c~9^CEJAX*n#7)NfK56uG6nMMG-vVfZNO@tFzgDJP!N z^Fg+A0pkMKhkSrn@F2zR>8uv@)Et2osb6k8vCt+N#5bant(c>p>3)&E@$KVjYlvL` z4EvtebOI{>4LjW3Nn z_u{XBg~9Ueg3nvd;i5E=)jXO|`aMqRHFc13mry`y_T3Ay{WpR>L-@uN0&FRlzY=!r zH}WA`1J2L*&vE1X$eE?eHa@%XENd*))tQ^#tEda{$2jHzKDS$y#SVP za0Ju8f{>NgkwJFXREX_E$(*jm;Rz75J!Tmxo?-v$0F{8wWDB7q%k6;6EaFgg=DqMC zQjEQ|R%^_Ef!9oX;eO3MHkaS}bD{q|)4hUpumi+5qiG0#*xX!0MT~Ig6zd`R!or9_ zZBHGRRQHFKH+3DHN*#rW5$1$Rf!Mxj`X`HS_Mxqr=HdUIb5-Ft(cTw&C){ zgOtq8MKia-Vq0k)m7zyWZclimI$zq&uPW{_)y+^8nA&XFYjEky_nI5M>|A~(tWslXhAutjahE>o3l;3 zWVMWkdS45h|EU4wDSH>(DetU-UmEauM>hm(a}*jy5{k02*t4&LbBSVKw%}!Pp&O`2 zr`F$~h<@uroHP=VO*d#U-GQJqZtX#P|nl_gd^ciy` zdzMED3(3rnIjMKS6suji)~ZC2dAGbAomM*aWi3wf>dE@HN;!u|2h(T(RKwt2@A)ae zA{l%!9yAMQHXnOR2JcRgK`93^ST}xB?)?LfNC(fIkz-UQHDNOwyw*4`j}@4)20G+cvbkUUUMsl?Ekn6P`X1 z&p$dV(vt_2)N|q{e6uTj{ccNqQ$^=Y$KJlvCxmVG%B$q=P%G7Y4OySi1f{&0mM>^C zsbLQMph%(g7EmHMRCa1P_0V{5v%C7@G)$&%*Y_D4ou>HGe5c0!3#!@1%t_XK*(c8X zNUC7_8}g0td)EM!@wX6%mZ9?A!LC;~!=AXd8FFh>)k@yH@u)+X73N0U3u(32pNTi5 z>6^bH@BR4ZWSm^fL2Ua^N`CIzOtyy(R|Db$CA9tij4aKZrY#;b7OB#S`QK&>^uWI@ z>JW;27FjtJdkHLzya9B-kZ1^C4G3aaRx+h||d_o=?czPr-!wYYqO+JmTe@q8oT?BrgP87Es^ zzXOxCmRMr~TO;aenMf(1J7lR`WDH@_p5MP3ce+?}o3lVhJr(SIcG!Hm;1K+p?hHMq zKhkDbx!|~;o#K?&a$YT;mj=px1;VS6&b&|TCBeZUHFfngstx))KyoP{>S&hb72PyQ z<(4(O=^Ik>7eJXGY6;C+swUlk#_f|HVMp(u&9FKKX&*WyY(rMm^SKrpQT-qS)?P*v zeSCOGrr`p8>5eMy6j;D)zPFJ#F5$L>W#WZ4>adP1ixr2`Hj?E&%&$|!?X zV$KygP^x@p&T>`8HtVZVlTIuj*!Db*pQSw499jh91)mO$|5?s7>id!L(P3{tP<=Zs zZ0+n`iS4|^zQu(2-T8Jlo72W?vexa|>N#OLRdo#y zn8ppAALl9DR*yP63LhRT$MEbpNq(v!qB0a$#17&JDx?Q}=)?Df6`Io7K{Jb8iHYhI z$Z}m8Qq57SCYi)42|YXKOOGH~#>=8^S_HqUl3JM>dN8XSh6f%u6W=3wd5I|ltEWC? zzL@iSor&b3sd=^L&rNt4;N_Ct)PpEcmNR*0snyO ztd!SgH4L1b&{oIVTo9X@x_K+`a%*jE-e&+ZWCg$TF7eEeXu7utN`R)*O&kO zd|?Fv#cLDin`RaUTS49Q%@e4^NatI&?E|97v8GvI`d3YXj;x7;siBwSow~LkBhr_H zVftGW)sLX087>TKSat@;(h;5k^66g&@T_KW#lgFV@~H;k^P&fpq8+v7&eI}tXScMR zRF1E%JN4gOgObKvq*Xtz)^3h(n&7{{EDEaL4=C~r3>$^UtXijMoUsjL@L9oMu@&Ti zhCiCr1}^t?$Q(l=@QqWch^n8hI^|mv-Np1@ynPD3U|8u?O?=c{4|+B4c%zmO~p`%U$qk1!#+{rX1j zzw*P-OR6_hsnSiDO`a^*(i-&C{^m8!2M#p4=l~rnPGs8}8*dhY%0>L%TJ9WTmWv4n z&4zs@u9TOKaf%Vo)+B)a@&#XkW=hYQXk~}bA91_J5?`py<#~PppYFizJwQGZhh%~5 z3uERm6J21s^0%{l2BDWfj#s==UL35aze(M&+fC;mrIbO1JHnTnz||wgqgWd)3j(-W z&Cb8&^?2@25we2WmhPh-_2XqrJ1j%9IR23ikSiMe>FQh^!p-%5EE2N;P!)p&-{E>p zoW<VSx%zDJVLJY}Y|DFb(JqZ0AA=Zu= z_9w^hzfqosmN`BBZ#N#Kb`;MCuw!E=F+wHia_i#3>7ny!78_~`lk5+(Bl-t^OOuX~ zjgjtZeQN>JMpvzr2Po;oKr;EL13{ap!`UxOo$W_)YzV{}vob6)dI2BTnU$^K6(kwyP9ux_%4$7+@(It9X8{k{PPL8MS&Vc6n5&tMdz#G)rSKUh~FzwgWD5}qhU`^Z)h0Q zNir%Fs!Y&G=nA5e(7V*i`O<-6eKh`YQ%u`Ar=xvtGNqWd$TXyY%R{C}1`Ni95yY&^(={bi;R?)wvC8KT498Pp)BZAGsSp2O!`~c7Kxyqdb7? z?RifB**ez6=&v+E)1fw4xyEQyet!Q5Iq*Q|0!-~5Zor!n_B)mpHH2`)f7*b?-2@{O z?V_bu8+Dx8B0?*p7!S`drD(0fD_}vS-ELzsX>OH(!Q5CH%Rii`&bQqCEn$r_VtnGr zxlO^}liY_e#!GENLvEgoSD*A3GImJdF?Z0*7<=S-!_ohqH2wRpO`A-dlUb23MCFtY z{RIoLjBol z0$)8h8H19A!ra((%^DwkVlm6Fi!``X)7V(flwuoIYJGq}-srbzVD=QlMxAYnxC72{ zo)iz>AQ=SG@Eh46^G0URfMw)r)GMLZD^Oiv_wVCl6X|Hny@aTic2264mPmuUi+aNW zQuGTgSD-Z!*8u_ac6!#7nN5)fNfsUTYD5XD$E#6vvt#KU>XCHDvl=C3vU{w>ejxVe zo86l;akt*^xmY>tg-&C+{OCfE2`_D;BI`q*N~KebyDX-kv|&PQTo{}zi6-U+V<&0H z6b06>3(J2_!Y9HfPD-rWMY}_!_O%@VU|sQ$O~i-aG{fKZTgtQkIK1C%NICxr-j@o9AGDjQ{iL``P?f>Qf*Pqx5qs? zR+U(R+O&bxt>TX~S8I2+&5O1iWI>d#rsetX$c`7j;${lC+}R74NQ}< zuz^2y+C-JXjBEYRW&-KiQLzDAXQxJIB|{eCBRD;!Gm2NbHKI_2z2iw1J7JSw3^%4_ zeo+3RWWj{SkjxL6|C=A8CkFl7dj9pk+=+>kxKH$tsN_@9uEE5OsU>iPRFf%bbj$pa z3C!7~Ve$Sg6AGe#`tjYuOFuZmN3-bfNsfy&h_fV;*|DUTOM7DhTlnu%yQmp@^O(_@foyv;tW#wP){RQB=4bi{*6F66a!VU|`e*VDB1!EVJVLg3{wU+c5 z9`bKBR6hoaCZvILJy509-x8kB79~K+?p#xdWtdVd;(1Q?Uh>iM6h<~mMBSSdcJuPn ztdcDg>}kRX|6N_14DW*|g4e0%XUc(0(0JRUbgX>?V7t2G7tib@>y>!aB>hiTNek4~ zzRys3rj?cfS2GvKpr=%q*Q@lRC@KDWRMW=+Uij~}SV-CP2O$CSAA@XB>qbosfj2ze ziY{~^QsL2eOfNd`a*zC{gga)sstlXEWwA;Ef0t%qs?2|Uz9@-T9@DJ;YN-milWJ?R zfBWS;jqkNDJmog0-#z7Lhhr(qTu2_=KeWoxYrfgfb7b(gc(0^76 z0u@#qAJs=wh{bsRXdCMIY6@xRXnLXWsIcleor*yO?YZK*8x4RjWl8l*QABzU*zit{ zTdThOUWA}-Vq{n${GrPv=u;z02so*pf=ftVJ3I}M@RTpGo0b?{OS)+4#r|uPaj*^< z&tC8>Ew}xMa(6!DayTrqRJ%5`QP2it<}Jxt27Ho-Ww;duxoJZ0o7tOXEAKY(YL-I0 z*o~L-e&+r=@9>V!ezG6cy@;mn)Yho_MOaMu+BtW9i)P#|S_+t1RneNLEA>rrIynq} zKRxT+=?tez@$Itsrs#ozkGvBVvGKOih?imwpP`yw_4{XhPuYZzkt56!GLQWCwA>Pu zCm==C&ih-aX^TIx(i2{ta%xhD zOU84^0bV{C@9Qk4b9UiPvrP@P^lf^MEe(DV`a@uaORwjDuw?(OvL*{!lQ_8>%`1Gi6=med?}K!I7Z7L^##ZA+aTq=to_LN)c)&QHNdw%R3qBqf>(Y zymxELy?fw( zYIdv<{RrK(?$blxRucJIfTJKK=wL0$1=(!WAq#jb)iNtFh)Ym+kS7M|23(g?kh4f7 zY~?($1DfWafLqQif9uUkxo(bt=DF0NV0$i{RRRwlzJy zC^~QFy8-P)JLx_XGOp{k8fn;^+raX_0=vo)gZi!f$P22Ow4dbtRi*_WHW&BOCygbM zKH%(*%EQ?nq1=7a2*xTl0{!G(>*T!}Z$fpVUb-X8cnTU?Ntby^GnCh$Ey@#R&2u+i zkaom`9g6Ne$OY%QnoJ~u9R`Uq)z$1!1^9~%U#!^?^c+pTE;uZ&ojJ+k?008zSQ0$n ztW)4Ymsd?e8>v5KeAoX)s_*?j!ta9dC=XP%(&aF%oIPX$a z@joeg&zE2a?Y~qB`5NQb>7kaL-M&eq3mF*bT{LNI2lHK96GE5U&%l}A9gs@QY_nE2 Sc#{6wl%cM%PPMjk^nU=fdvPBC literal 7023 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 NuFhUgWQWVy{{iT5`s@Gz literal 0 HcmV?d00001 diff --git a/modular_citadel/icons/mob/synthliz_body_markings.dmi b/modular_citadel/icons/mob/synthliz_body_markings.dmi new file mode 100644 index 0000000000000000000000000000000000000000..52f9027f03b113795fc8dd7e581af43244d769f9 GIT binary patch literal 1567 zcmYjP3pCSv9RKZ-*P&EOv2&5sbwnhOl4dnF9Z9(2+%`(lqRlg}HRVxWA%+^l^%zMm z$@`UiS@K-dydSk9(^~V|->}^|w|nmWo%1{2@9*<{obTuR`@}ogqm>lY6aWB9wiuKn z05Hw1D<=g2(8l7bCC1dj&e^)Xy&VhzPz!)q0*OHl0NDWKOZ;xI2tb*{`2c_rv;r^= zKr#R`KvHtr6J{cbz=9m@oq*Nsh?nFs5bo?6gt{K+8G!c-!V?JqgyytRsfO({?aUHXDiqp)Veef_!>hjsafdt1}@(byeVlJ<6=ARsp%rQ1C5pzPiix>~4f z8m_>pDJ?&6;OZi&iS_tl$@9|1d8{Q&YERtK5h$$#0O@916w)~~hdap)C^S^Gx@b|q z-F!1#Ov9dSG|sg<(y;RxK4Ks!T|@cPFEWkRNG-`Wz#j=TrmpA%L^bbp6_1)8%N^^n zXBMy@Eb}Y1PMGj31bOD2;>;rlAGFx zFOUy8ic(;%ug8Q}@`(5yer3AKICvdYB7ZGDuXduhtR+3;R)T5|@FCMyRq{A!&6e;< zdXeJoPSq6T)s5wO{)_ta{%oyw!_GR`NHW8um7+OrU>cslQ*l3+3Kv)Fe0hhvvTTr9 z2lZt&(TBYUN3gz-n_Vt)-Ht!~` zIbF8wv!K^$L~~|3nKAwe<#f$C=wz@^S1%~nDi-^N$&Q2mVF|$3xgf{ZJw8Lft`A=B zz8vY9)JE2YMuo*Q(2)t(f|sU64b)enF15&%$_%=7{R(Psj}G3%Y4f2G`3{jO^z0sN zRN_v-ImNb#FBX$z-CJ54REMRxhS7FO{6Ji0*7fd+?Cek3a}giYRGE`ll*Q1rE5+4` z66o9VI$()(;ki7^E0xP>i!~yz)t^YzM|Q1C#di(ludJSBNy|5l>_Eu8XOj9yZ&R~E zs(fzTN{Ddr8~w=h6Bh=nlbas*zueG^8Rm-6l_j^n`bFnUMN|+6GV?fQhfAAd>mFIi z{h&#T4cY8tWO%O~Wi<^=%c(1?o)*Zibv$!-q`Zy0!yy()?>~AI|2$qVfcwUN#mrH9 zylXP};G0(>n|K7yt@^l?K&Y-G3f1YkRNM1PRMK#Y9PV3DjhW0_WO%0@>r8Zn4`yi= zwDbooOLt2Rafsn@D`w|5_%+zxCXr1d;_}6=Ic#KMr^W@{WdF*x6D0p+(^EWQb~Fu* z-cgPuX+DhA)gh`O%! z*X>L3uPS3$V&4Z)a<1&^JmOGrirR#@_XbVmxub4)kr(N8yixo(f>h4fq))Ja%LwHn zSPBk=r#vGQbbuu4e445~y6f5v{@j$f7qft1J;{Htp3)#d7^_c4_FA-#ei3;}6lNpP z2uvZGN?L`GUP@a1H{x=je)5_UCiTGBO*GlE!hB}Hi9=LAW{f$Mm1R}dcF!epX%4?) y_Fa;-4U@uv35gj3hW7vY0dgt-GlITvYXKbyTB>#i+}V9?E5p{>9`)jkN7Ub0p!}x* literal 0 HcmV?d00001 diff --git a/modular_citadel/icons/mob/synthliz_snouts.dmi b/modular_citadel/icons/mob/synthliz_snouts.dmi new file mode 100644 index 0000000000000000000000000000000000000000..908ac583d09bbece754a410eb1a58389713cc185 GIT binary patch literal 781 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 73beef27e5..d097d8e0e8 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2134,6 +2134,7 @@ #include "code\modules\mob\dead\new_player\sprite_accessories\pines.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\snouts.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\socks.dm" +#include "code\modules\mob\dead\new_player\sprite_accessories\synthliz.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\tails.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\undershirt.dm" #include "code\modules\mob\dead\new_player\sprite_accessories\underwear.dm" @@ -2254,6 +2255,7 @@ #include "code\modules\mob\living\carbon\human\species_types\podpeople.dm" #include "code\modules\mob\living\carbon\human\species_types\shadowpeople.dm" #include "code\modules\mob\living\carbon\human\species_types\skeletons.dm" +#include "code\modules\mob\living\carbon\human\species_types\synthliz.dm" #include "code\modules\mob\living\carbon\human\species_types\synths.dm" #include "code\modules\mob\living\carbon\human\species_types\vampire.dm" #include "code\modules\mob\living\carbon\human\species_types\zombies.dm" From 519de6a83d241604cb3ad795db5c53e8a704d9f0 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 3 Mar 2020 16:12:33 -0500 Subject: [PATCH 03/12] while im at it - Improves the appearance of the antenna synth antenna by slimming down the south-facing and north-facing side of the synth head sprite and moving the antennae closer together by one pixel --- .../icons/mob/mutant_bodyparts.dmi | Bin 8936 -> 8936 bytes .../icons/mob/synthliz_antennas.dmi | Bin 1534 -> 1587 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_citadel/icons/mob/mutant_bodyparts.dmi b/modular_citadel/icons/mob/mutant_bodyparts.dmi index f2787db632fd8f57895738f3e4b5a734f3cd7647..95b121b4533bcc1115c37f46c9de951609bfc25d 100644 GIT binary patch delta 7330 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 delta 7355 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 D7;}sO delta 1230 zcmX|-YgCd47{_06SY9$$8fI?QHYzV2#)fr{qM+I7n0cwZ9CJ$QlpH9{OT$cFwa~dX zsZMj17xbWYSc+%f#}X_}EiX9Hg)f?*Q-;M+< zP(11)sHC!7CAU4MmJOXVO+L{*gCeGS?UWtuAkdVU%Df$vCyf*@Ne$A~qcO=jDXP=!T z$?v8g9zTj4MU#}igT&m!nA=S#Yf!vUe{WCFz4Vu&c77%x(A1F?KmR>(W z!$r%#QhsAKv|pq}IibciZV1jw)^wA9J|CG0xdx6N{9vIccGb)%5Dn}i?M_%&kxlp{S zPd0L3-o|q=i2n1&M|vG1TwYwjIAD-m~1jf--zcue3YX;I61Wk&X^HP4W zFt-AhV<`o;?X$v{f}&YaMDBPzqF{|hiRadnubqjX5&6TMjQ`^GR!VWP0UG=h1-w z`d~R8Aey)D5cQRdBvn3hzHr>Lg?5KOL#%d~Lppnoy)rbrjLj*%oOsqKLKa-VdXHxX zg-N83UnETD?47nPxP@D;!GfI+>MAaKIDU9{H~KvTjAboYt^1u-sYV0ThCFaXgl=1j z>G|5^i(7UlFqv=4KN0GAcJ+bUwV@sw!JU6eCaXSLD-e(d9NBb=A!=!k!~qDm=Mgg5 zuGcEn>*uBO?uk1Ddg+lptL6%?p3cakasS5{93iI0vh3{{j&eY$_EdjtTEEU+3+uq* zz*!54W=l+(=jK#!TMnohP*QKGJ+Kqs*AOXitV+eWc21?Tn1tw0rIqNe9uo*~5PGCG z-`?qlz(tauM>GAc?R8J&8012^^Q!r-R}Uky$VscF{ZKkM*(=BJHf!Mj5|Ie-h4L`A gM5<^;ZC}H-GkqtK*$~h1;QLJ$aymSi6Lh)wfAe{1IRF3v From 49ad376e5eb85e37a306d4382c04f2a80ccb6ffe Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 3 Mar 2020 17:44:10 -0500 Subject: [PATCH 04/12] Adds a very basic soft restriction system. There's definite room for improvement, but this is good enough for now. Am too hongry for this. --- code/__HELPERS/mobs.dm | 29 ++++++++++--- code/datums/dna.dm | 2 +- .../antagonists/bloodsucker/powers/veil.dm | 2 +- code/modules/client/preferences.dm | 41 ++++++++++++++++++- .../mob/dead/new_player/preferences_setup.dm | 2 +- .../sprite_accessories/_sprite_accessories.dm | 3 ++ .../sprite_accessories/body_markings.dm | 1 + .../sprite_accessories/ipc_synths.dm | 2 + .../new_player/sprite_accessories/snouts.dm | 3 +- .../new_player/sprite_accessories/synthliz.dm | 21 +++++----- .../new_player/sprite_accessories/tails.dm | 2 + 11 files changed, 86 insertions(+), 22 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index a5924994e7..cb1896cb1a 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -47,7 +47,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/underwear/socks, GLOB.socks_list) return pick(GLOB.socks_list) -/proc/random_features() +/proc/random_features(intendedspecies) if(!GLOB.tails_list_human.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/human, GLOB.tails_list_human) if(!GLOB.tails_list_lizard.len) @@ -105,6 +105,8 @@ var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[mtpath] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies)) + continue if(!S.ckeys_allowed) snowflake_mam_tails_list[S.name] = mtpath var/list/snowflake_markings_list = list() @@ -112,6 +114,8 @@ var/datum/sprite_accessory/mam_body_markings/instance = GLOB.mam_body_markings_list[mmpath] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies)) + continue if(!S.ckeys_allowed) snowflake_markings_list[S.name] = mmpath var/list/snowflake_ears_list = list() @@ -119,6 +123,8 @@ var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[mepath] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies)) + continue if(!S.ckeys_allowed) snowflake_ears_list[S.name] = mepath var/list/snowflake_mam_snouts_list = list() @@ -126,8 +132,19 @@ var/datum/sprite_accessory/mam_snouts/instance = GLOB.mam_snouts_list[mspath] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies)) + continue if(!S.ckeys_allowed) snowflake_mam_snouts_list[S.name] = mspath + var/list/snowflake_ipc_antenna_list = list() + for(var/mspath in GLOB.ipc_antennas_list) + var/datum/sprite_accessory/mam_snouts/instance = GLOB.ipc_antennas_list[mspath] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if(intendedspecies && S.recommended_species && !S.recommended_species.Find(intendedspecies)) + continue + if(!S.ckeys_allowed) + snowflake_ipc_antenna_list[S.name] = mspath var/color1 = random_short_color() var/color2 = random_short_color() var/color3 = random_short_color() @@ -153,10 +170,10 @@ "insect_fluff" = "None", "insect_markings" = pick(GLOB.insect_markings_list), "taur" = "None", - "mam_body_markings" = pick(snowflake_markings_list), - "mam_ears" = pick(snowflake_ears_list), - "mam_snouts" = pick(snowflake_mam_snouts_list), - "mam_tail" = pick(snowflake_mam_tails_list), + "mam_body_markings" = snowflake_markings_list.len ? pick(snowflake_markings_list) : "None", + "mam_ears" = snowflake_ears_list ? pick(snowflake_ears_list) : "None", + "mam_snouts" = snowflake_mam_snouts_list ? pick(snowflake_mam_snouts_list) : "None", + "mam_tail" = snowflake_mam_tails_list ? pick(snowflake_mam_tails_list) : "None", "mam_tail_animated" = "None", "xenodorsal" = "Standard", "xenohead" = "Standard", @@ -204,7 +221,7 @@ "womb_cum_rate" = CUM_RATE, "womb_cum_mult" = CUM_RATE_MULT, "womb_efficiency" = CUM_EFFICIENCY, - "ipc_screen" = "Sunburst", + "ipc_screen" = snowflake_ipc_antenna_list ? pick(snowflake_ipc_antenna_list) : "None", "ipc_antenna" = "None", "flavor_text" = "", "meat_type" = "Mammalian" diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 68c6839482..2f4dba9c38 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -218,7 +218,7 @@ unique_enzymes = generate_unique_enzymes() uni_identity = generate_uni_identity() struc_enzymes = generate_struc_enzymes() - features = random_features() + features = random_features(species?.id) /datum/dna/stored //subtype used by brain mob's stored_dna diff --git a/code/modules/antagonists/bloodsucker/powers/veil.dm b/code/modules/antagonists/bloodsucker/powers/veil.dm index 0c83cc2d44..0b3cded832 100644 --- a/code/modules/antagonists/bloodsucker/powers/veil.dm +++ b/code/modules/antagonists/bloodsucker/powers/veil.dm @@ -92,7 +92,7 @@ H.socks = random_socks(H.gender) //H.eye_color = random_eye_color() REMOVE_TRAIT(H, TRAIT_DISFIGURED, null) // - H.dna.features = random_features() + H.dna.features = random_features(H.dna.species?.id) // Apply Appearance H.update_body() // Outfit and underware, also body. diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index cdc3fbc5b9..3d4c22d8b6 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -210,6 +210,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/icon/bgstate = "steel" var/list/bgstate_options = list("000", "midgrey", "FFF", "white", "steel", "techmaint", "dark", "plating", "reinforced") + var/show_mismatched_markings = FALSE //determines whether or not the markings lists should show markings that don't match the currently selected species. Intentionally left unsaved. + /datum/preferences/New(client/C) parent = C @@ -411,6 +413,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) //Mutant stuff var/mutant_category = 0 + dat += APPEARANCE_CATEGORY_COLUMN + dat += "

Show mismatched markings

" + dat += "[show_mismatched_markings ? "Yes" : "No"]" + mutant_category++ + if(mutant_category >= MAX_MUTANT_ROWS) //just in case someone sets the max rows to 1 or something dumb like that + dat += "" + mutant_category = 0 + if("tail_lizard" in pref_species.default_features) if(!mutant_category) dat += APPEARANCE_CATEGORY_COLUMN @@ -1618,6 +1628,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) else to_chat(user, "Invalid color. Your color is not bright enough.") + if("mismatched_markings") + show_mismatched_markings = !show_mismatched_markings + if("ipc_screen") var/new_ipc_screen new_ipc_screen = input(user, "Choose your character's screen:", "Character Preference") as null|anything in GLOB.ipc_screens_list @@ -1625,8 +1638,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["ipc_screen"] = new_ipc_screen if("ipc_antenna") + var/list/snowflake_antenna_list = list() + //Potential todo: turn all of THIS into a define to reduce copypasta. + for(var/path in GLOB.ipc_antennas_list) + var/datum/sprite_accessory/antenna/instance = GLOB.ipc_antennas_list[path] + if(istype(instance, /datum/sprite_accessory)) + var/datum/sprite_accessory/S = instance + if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) + continue + if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) + snowflake_antenna_list[S.name] = path var/new_ipc_antenna - new_ipc_antenna = input(user, "Choose your character's antenna:", "Character Preference") as null|anything in GLOB.ipc_antennas_list + new_ipc_antenna = input(user, "Choose your character's antenna:", "Character Preference") as null|anything in snowflake_antenna_list if(new_ipc_antenna) features["ipc_antenna"] = new_ipc_antenna @@ -1646,6 +1669,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/datum/sprite_accessory/tails/human/instance = GLOB.tails_list_human[path] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) snowflake_tails_list[S.name] = path var/new_tail @@ -1663,6 +1688,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/datum/sprite_accessory/mam_tails/instance = GLOB.mam_tails_list[path] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) snowflake_tails_list[S.name] = path var/new_tail @@ -1686,6 +1713,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/datum/sprite_accessory/mam_snouts/instance = GLOB.snouts_list[path] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) snowflake_snouts_list[S.name] = path var/new_snout @@ -1701,6 +1730,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/datum/sprite_accessory/mam_snouts/instance = GLOB.mam_snouts_list[path] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) snowflake_mam_snouts_list[S.name] = path var/new_mam_snouts @@ -1798,6 +1829,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/datum/sprite_accessory/taur/instance = GLOB.taur_list[path] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) snowflake_taur_list[S.name] = path var/new_taur @@ -1816,6 +1849,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/datum/sprite_accessory/ears/instance = GLOB.ears_list[path] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) snowflake_ears_list[S.name] = path var/new_ears @@ -1829,6 +1864,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/datum/sprite_accessory/mam_ears/instance = GLOB.mam_ears_list[path] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) snowflake_ears_list[S.name] = path var/new_ears @@ -1842,6 +1879,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/datum/sprite_accessory/mam_body_markings/instance = GLOB.mam_body_markings_list[path] if(istype(instance, /datum/sprite_accessory)) var/datum/sprite_accessory/S = instance + if(!show_mismatched_markings && S.recommended_species && !S.recommended_species.Find(pref_species.id)) + continue if((!S.ckeys_allowed) || (S.ckeys_allowed.Find(user.client.ckey))) snowflake_markings_list[S.name] = path var/new_mam_body_markings diff --git a/code/modules/mob/dead/new_player/preferences_setup.dm b/code/modules/mob/dead/new_player/preferences_setup.dm index a82054d500..14cd7be547 100644 --- a/code/modules/mob/dead/new_player/preferences_setup.dm +++ b/code/modules/mob/dead/new_player/preferences_setup.dm @@ -22,7 +22,7 @@ if(!pref_species) var/rando_race = pick(GLOB.roundstart_races) pref_species = new rando_race() - features = random_features() + features = random_features(pref_species?.id) age = rand(AGE_MIN,AGE_MAX) /datum/preferences/proc/update_preview_icon(equip_job = TRUE) 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 92bc8e407b..abe51bf486 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,6 +71,9 @@ //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' diff --git a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm index a5437aaf39..8f043125b2 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm @@ -38,6 +38,7 @@ color_src = MATRIXED gender_specific = 0 icon = 'modular_citadel/icons/mob/mam_markings.dmi' + recommended_species = list("mammal", "xeno", "slimeperson", "podweak") /datum/sprite_accessory/mam_body_markings/none name = "None" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm index 6d2ab1a39b..d47607f6fd 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ipc_synths.dm @@ -132,10 +132,12 @@ /datum/sprite_accessory/antenna icon = 'modular_citadel/icons/mob/ipc_antennas.dmi' color_src = MUTCOLORS2 + recommended_species = list("ipc") /datum/sprite_accessory/antenna/none name = "None" icon_state = "None" + recommended_species = null /datum/sprite_accessory/antenna/antennae name = "Angled Antennae" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm index 55bdc31aef..c016e9b119 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm @@ -151,11 +151,12 @@ /datum/sprite_accessory/mam_snouts color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_snouts.dmi' + recommended_species = list("mammal", "slimeperson", "insect", "podweak") /datum/sprite_accessory/mam_snouts/none name = "None" icon_state = "none" - + recommended_species = null /datum/sprite_accessory/mam_snouts/bird name = "Beak" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm index 21ba17cf40..4dbf9ea0b1 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm @@ -1,5 +1,6 @@ //Synth snouts (This is the most important part) -/datum/sprite_accessory/mam_snouts/synthliz/synthliz_basic +/datum/sprite_accessory/mam_snouts/synthliz + recommended_species = list("synthliz") icon = 'modular_citadel/icons/mob/synthliz_snouts.dmi' color_src = MUTCOLORS name = "Synthetic Lizard - Snout" @@ -24,7 +25,8 @@ icon_state = "synthliz_tertunder" //Synth body markings -/datum/sprite_accessory/mam_body_markings/synthliz/synthliz_scutes +/datum/sprite_accessory/mam_body_markings/synthliz + recommended_species = list("synthliz") icon = 'modular_citadel/icons/mob/synthliz_body_markings.dmi' name = "Synthetic Lizard - Plates" icon_state = "synthlizscutes" @@ -40,26 +42,23 @@ icon_state = "synthlizpecslight" //Synth tails -/datum/sprite_accessory/mam_tails/synthliz/synthliz_tail +/datum/sprite_accessory/mam_tails/synthliz + recommended_species = list("synthliz") icon = 'modular_citadel/icons/mob/synthliz_tails.dmi' color_src = MUTCOLORS name = "Synthetic Lizard" icon_state = "synthliz" -/datum/sprite_accessory/mam_tails_animated/synthliz/synthliz_tail +/datum/sprite_accessory/mam_tails_animated/synthliz + recommended_species = list("synthliz") icon = 'modular_citadel/icons/mob/synthliz_tails.dmi' color_src = MUTCOLORS name = "Synthetic Lizard" icon_state = "synthliz" //Synth Antennae -/datum/sprite_accessory/antenna/synthliz/synthliz_none - icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' - color_src = MUTCOLORS - name = "None" - icon_state = "None" - -/datum/sprite_accessory/antenna/synthliz/synthliz_antennae +/datum/sprite_accessory/antenna/synthliz + recommended_species = list("synthliz") icon = 'modular_citadel/icons/mob/synthliz_antennas.dmi' color_src = MUTCOLORS name = "Synthetic Lizard - Antennae" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index 5ae3c9a8b3..90980743e1 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -501,10 +501,12 @@ /datum/sprite_accessory/mam_tails color_src = MATRIXED icon = 'modular_citadel/icons/mob/mam_tails.dmi' + recommended_species = list("mammal", "slimeperson", "podweak", "felinid", "insect") /datum/sprite_accessory/mam_tails/none name = "None" icon_state = "none" + recommended_species = null /datum/sprite_accessory/mam_tails_animated color_src = MATRIXED From c5109fa31affeaf94af966446a651bceb4bf71d5 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Wed, 4 Mar 2020 21:04:34 -0500 Subject: [PATCH 05/12] addresses review --- code/modules/surgery/bodyparts/bodyparts.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 76beea5082..085e7e8740 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -283,9 +283,9 @@ if(change_icon_to_default) if(status == BODYPART_ORGANIC) - icon = base_bp_icon ? base_bp_icon : DEFAULT_BODYPART_ICON_ORGANIC + icon = base_bp_icon || DEFAULT_BODYPART_ICON_ORGANIC else if(status == BODYPART_ROBOTIC) - icon = base_bp_icon ? base_bp_icon : DEFAULT_BODYPART_ICON_ROBOTIC + icon = base_bp_icon || DEFAULT_BODYPART_ICON_ROBOTIC if(owner) owner.updatehealth() @@ -327,7 +327,7 @@ color_src = FALSE var/datum/species/S = H.dna.species - base_bp_icon = S.icon_limbs ? S.icon_limbs : DEFAULT_BODYPART_ICON + base_bp_icon = S.icon_limbs || DEFAULT_BODYPART_ICON species_id = S.limbs_id species_flags_list = H.dna.species.species_traits @@ -375,8 +375,8 @@ if(Smark) body_markings_icon = Smark.icon if(H.dna.features["mam_body_markings"] != "None") - body_markings = Smark.icon_state ? Smark.icon_state : lowertext(H.dna.features["mam_body_markings"]) - aux_marking = Smark.icon_state ? Smark.icon_state : lowertext(H.dna.features["mam_body_markings"]) + body_markings = Smark.icon_state || lowertext(H.dna.features["mam_body_markings"]) + aux_marking = Smark.icon_state || lowertext(H.dna.features["mam_body_markings"]) else body_markings = "plain" aux_marking = "plain" @@ -466,7 +466,7 @@ should_draw_gender = FALSE if(is_organic_limb()) - limb.icon = base_bp_icon ? base_bp_icon : 'icons/mob/human_parts.dmi' + limb.icon = base_bp_icon || 'icons/mob/human_parts.dmi' if(should_draw_gender) limb.icon_state = "[species_id]_[body_zone]_[icon_gender]" else if (use_digitigrade) From ee65f070bf800322fb1406ca4732db1ce511c10e Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 5 Mar 2020 23:22:56 -0500 Subject: [PATCH 06/12] fixes runtime with body markings --- code/modules/surgery/bodyparts/bodyparts.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/surgery/bodyparts/bodyparts.dm b/code/modules/surgery/bodyparts/bodyparts.dm index 085e7e8740..921af3e527 100644 --- a/code/modules/surgery/bodyparts/bodyparts.dm +++ b/code/modules/surgery/bodyparts/bodyparts.dm @@ -327,7 +327,7 @@ color_src = FALSE var/datum/species/S = H.dna.species - base_bp_icon = S.icon_limbs || DEFAULT_BODYPART_ICON + base_bp_icon = S?.icon_limbs || DEFAULT_BODYPART_ICON species_id = S.limbs_id species_flags_list = H.dna.species.species_traits @@ -375,8 +375,8 @@ if(Smark) body_markings_icon = Smark.icon if(H.dna.features["mam_body_markings"] != "None") - body_markings = Smark.icon_state || lowertext(H.dna.features["mam_body_markings"]) - aux_marking = Smark.icon_state || lowertext(H.dna.features["mam_body_markings"]) + body_markings = Smark?.icon_state || lowertext(H.dna.features["mam_body_markings"]) + aux_marking = Smark?.icon_state || lowertext(H.dna.features["mam_body_markings"]) else body_markings = "plain" aux_marking = "plain" From e08669e8a13caa64ed0131574670acf656d73aa3 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 6 Mar 2020 00:15:37 -0500 Subject: [PATCH 07/12] Ports Virgo's synthetic taursprites, adds taur to synthliz mutant bodyparts --- .../sprite_accessories/legs_and_taurs.dm | 2 + .../new_player/sprite_accessories/synthliz.dm | 37 ++++++++++++++++++ .../carbon/human/species_types/synthliz.dm | 6 ++- modular_citadel/icons/mob/mam_taur.dmi | Bin 33826 -> 52417 bytes 4 files changed, 43 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm index b31a41bcc7..fe154ffeec 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs_and_taurs.dm @@ -30,12 +30,14 @@ var/taur_mode = NONE //Must be a single specific tauric suit variation bitflag. Don't do FLAG_1|FLAG_2 var/alt_taur_mode = NONE //Same as above. color_src = MATRIXED + recommended_species = list("human", "lizard", "insect", "mammal", "xeno", "jelly", "slimeperson", "podweak") /datum/sprite_accessory/taur/none dimension_x = 32 center = FALSE name = "None" icon_state = "None" + recommended_species = null /datum/sprite_accessory/taur/cow name = "Cow" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm index 4dbf9ea0b1..a2884ab944 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/synthliz.dm @@ -111,3 +111,40 @@ color_src = MATRIXED name = "Synthetic Lizard - Horns Light" icon_state = "synth_hornslight" + +//Synth Taurs (Ported from Virgo) +/datum/sprite_accessory/taur/synthliz + name = "Virgo - Synthetic Lizard" + icon_state = "synthlizard" + taur_mode = STYLE_PAW_TAURIC + recommended_species = list("synthliz") + +/datum/sprite_accessory/taur/synthliz/inv + name = "Virgo - Synthetic Lizard (Inverted)" + icon_state = "synthlizardinv" + +/datum/sprite_accessory/taur/synthliz/feline + name = "Virgo - Synthetic Feline" + icon_state = "synthfeline" + +/datum/sprite_accessory/taur/synthliz/feline/inv + name = "Virgo - Synthetic Feline (Inverted)" + icon_state = "synthfelineinv" + +/datum/sprite_accessory/taur/synthliz/horse + name = "Virgo - Synthetic Horse" + icon_state = "synthhorse" + taur_mode = STYLE_HOOF_TAURIC + alt_taur_mode = STYLE_PAW_TAURIC + +/datum/sprite_accessory/taur/synthliz/horse/inv + name = "Virgo - Synthetic Horse (Inverted)" + icon_state = "synthhorseinv" + +/datum/sprite_accessory/taur/synthliz/wolf + name = "Virgo - Synthetic Wolf" + icon_state = "synthwolf" + +/datum/sprite_accessory/taur/synthliz/wolf/inv + name = "Virgo - Synthetic Wolf (Inverted)" + icon_state = "synthwolfinv" diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index 47bd3cdaf5..40441c45fd 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -6,8 +6,8 @@ default_color = "00FF00" species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR) inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID - mutant_bodyparts = list("ipc_antenna","mam_tail", "mam_snouts","legs", "mam_body_markings") - default_features = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates") + mutant_bodyparts = list("ipc_antenna","mam_tail", "mam_snouts","legs", "mam_body_markings", "taur") + default_features = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates", "taur" = "None") meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless) mutanttongue = /obj/item/organ/tongue/robot/ipc @@ -18,6 +18,8 @@ mutantstomach = /obj/item/organ/stomach/ipc mutanteyes = /obj/item/organ/eyes/ipc + exotic_bloodtype = "S" + /datum/species/synthliz/qualifies_for_rank(rank, list/features) return TRUE diff --git a/modular_citadel/icons/mob/mam_taur.dmi b/modular_citadel/icons/mob/mam_taur.dmi index 84367ebf0af6c83676f4354b51e6869dc6e6755d..db1f001faee73befef68ce999a0c2b2a7936f709 100644 GIT binary patch literal 52417 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�p(%{7mot)>W$@nD42US8IOu{QLLsb}c2v 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 literal 33826 zcmcG#XH-*Bw>BC&(v=QE01;GrmzIEls8pqQkSe|RP^C##1f&Q^M>^b1!|JcC@2P0*Vd?(C)$@akGXUV5^*y=9Ib4uN$@Z33)BSDs z`z3|%7=C)cqzE!64g2i$;vB(Z*Qzr*dY3RZI}34G+7VECz4(L57T(bz=_mX1*^)@R1wGVl{gb+sSHG^Xw{v`GlX7Ewoe3^Y zgzcaz;@m)jy9Nw>Q)Q2KcW3Vl#w;CM$J0rV6BQecs%@O+N*dLawj>!< znT@*-4&V80uQ0|{C?Xu>e1j9=IW!A21N>gbnfVu9FO=~nXa>gCL6`YegVW=%V+ufc z$-5D0V30Uo?BuTwx*Tcche3ciHNvM3Lp3MUP?Puue|-8dLbt8ftm@lhH`Gh^C!GmI z>&1(=3QNHpEcyI`A5zIR$-g;%;$Fnp;fSe1ypR?(^C;DBjATBN4Rh~4%v#CFfh|AkZf^%tIwD_fPz z=VX$WO`jx}3oj-u!A?m{1SJn(!4Ti}IdP0B(A#<~e3;m6K24zU+WeZSGHx*JLl6)N zsr_>NdN0d{U1weAQ{{_`O0;~-1>>$WX%gs4_EEWhm2xAbuR^YVZBB0}#XKGKWs`;J z*HWS`J|lF0xWFKt?+dTxtJKa_?p&%F9#3Slut8-+@hP7imBeC{@`b0*r@zCFqTWBk z96o$YD6(z0P%abHR`Z6A+?Q~RtO$fm24ae;d;5VH^Qek57o^gc6V&Ssn+?e?*3Y%Q ztTVR}-J;H`NVI4f)mQ2Drpo)~^nZlh3^qF|9l)Q;GrdUVs7om;gAXZ@gOQJ=*Q%7Ry9_&Gym5|Jm@&RZc~(&RyaV9i7Y&EGk2)`y$3&xn0OedVRp1Xo(xSV^K^EK--v zmAxe0Rr0=p^noy;9a9ru%ZY*}T|M$|6i~sPg+4IQXWpH5i^DDY1L93X>@V-`&O8zU zuEl3&1Ic_c^C#d=FuFqr`6ueqmR}8}Vg;#C0h|L5w{EU#K?^t4KI7u$i&Q!pM~6}J zx^y{`?MrNnONZ3K6G+M)OW@(XsQMg ztjzz>SB6QD*>oFBbEnsj@f#N8@C+dEpT!^GZ>YI7cEwQ5m0#V^bi2h}A&8*9 zrod`7>!nA_An{E(f|5|#wVe;ZH#Oe}7fh~DNo`e#;9|yDlc1+KU2)6->{9wJcw8Yk z#sqCyAB>5aVzMt3%*{kygnZ-q2ryKtO0?!pqs1XWoQp0_{#!@q^?JJe9V7&&8uIWk z^nIE|RYs3K(6Ko5NTa(xYUA3227?yZ5{s?5Xqxa~)uSu`x=f)u^JfU=I4n0mwc?I^ zaV&g(AI47@{3CQ1PIIgl?BXd6l&RvqZMZo?Si3#T043D~>KAc``Gq$@-rn0rK^|Yf zd*pl%2FlKopdY2bzehumOUK~At1*~Z_hOi#@;wFR#(%(@$`@bHAkpep+L~D20Qx+P zCs{dKq3|DcH~)ifVN(I)gksvT^Aap#k9OO2M87J20;u08XnpNdae3co^JDkmY8C$Q zrBWh9>BzW$J;ttV--8N9H4Y9G1LHr`D7gV1MEKAs{|88^$ zTC01P_*F5&w~eyT1p;O;j4B_~0@%;`z~aH-4j?g9mEB64S0Pb=4)YANRhBEB5bhL7nJ#(-Nvr79bV|D!Z(w##|Fto;EE=LU( zMylwK@kzyse_6=Ha1Qq5)1&6-#9beb>2_;@c)@no<$qzuXJ#wTaJp|C0A zW?)4y;OUngGgSBTAtz;Fwq?8+6aIHI3%#x8sO3%XN)+ci{Ph}*76qIVg1u9`;}((d zzT$of=Aop@F7^((giZ=YgHh@<`S`lx+eRoj@PyefO#ZHd%;PdfY`UR4R zVh@xMPk>>0mqQG6~?2d|J|Ms@t8^F=y{+r@D|1gA;DvYDb%ckd~n;yxtvD62L; z?ZM}bY5JD2X@*={rmg!uDy$768{+8Y=z7ghRMuTB2Ox!3>)mXJP-SRPrKjGUt&LdD zqtB)_RJVj1k#X0t-R{g+)-9GZxWBmU89F+9EE_v#R`bhz<5$)jCZp2eQUDVq4l)Qj zo^tGtf;2-KGR8l@0`Zw2Qs$$;_;gI$t$SyI-@BKd+T$3e%!(SOws&h;>+%1A*j&e) zHAX6Xb)~&Pz1?qsUDtx*bn@$>qocpZwRHWXi=H$g|DObBaw(I;&jBVn5}!%A|1irB z=07LL-N}s1J6d__C_EqAVM*uf=w1z4z;J30`c;|Xe;Rm86J(xSR#s#BU+u;4!AwKF zrl~@*2NsHj_UU;Tj`Z%||1g|lu_jYp19hn7XTqKEsUb9fLu6JMh>8FY!#RaCSx zxadlGyC$O~L+Y3=KQRD`e>P@%B{~p9FNe}lR9w;q63YTEb9!sbG`;@R+J;`w;RWLw z6D$y_0%DzR6+F7p3O|!XSSSsb3I9Rg8K_ig`ZlSa@0r8>KRCT#x0b8R6sPRF?CO(j znXX#?mY#Bpr1}EVr~)fQSYTty7j3q$D2ftRh-WQ)jPRtF7H@v`Pp`#)?;(%Kh%Q2s z_yF{91Z-UloJgEWs(96Pk;>i)WFY`#LcOOm2|4i_^jPJbC1+a zTfgZsyJk2+i7QoE*(p*wmU}|mG*RS~$on)PLo2aD4j6n+ zB}>xUS>$S)c)eB^Va3Pbo!D&fy%MA6#gYr!IIa>zB2oWg$0nT}J?bu}q-6#_vQ%6$ zSK)$fqC9ow=j6j?{)vWx1)gK%g9skAB9#t;l(z(Wi7*w0uoqgB6(=N_gI>Y1y+SwX z?9HpvXr;SI?;Jtp+7u24narHDj+4Q1$As)19#m8JNXCY#`#m^*8Up|^aBq0rc1KW- zpPP3_(tQ5e{M$JV0w1OLa)@X4+yErz@+T>o7GuN@4^B#Fv2TnKOue}|Hv8ma4E`iG ztnQQtW_^SCRGwWAqJR$&5Y3i(jp%0`>XadowD`FS`W~#7y+W&iV5JL@v>rqYkm$HL zrTM@n+lq8tlsrC+oY2jh#XJ03cxKV-8tWu!jgj{TajsFVuI+!R8Cum)Z%J%8WE(7- z_6;E~%VOq$?U;*E)`o$HBB`KU!c14b#Vf#Ho?mBn^pTb(T(Hsg-SrV1y_4_KNir&J z$+|NH4Wtg+(L5`D8%J3h=t5aJ??&~>@jH?TC{qL6Dk7)+{2{vmymG5pW=ju0w$$kJ zR7uku+sm@!hLj@bKjZ-mOmOaEHQcDd@OvGxw){7-JsN1y)7<8Ogky-GODn-|>5mQ# zQC3N>%|wL`?5AkI%$KDX{O%P0G8**~tl9R$+gvqmC%r_*p^wisYR*N>n&s*3tEWmt z!NYVSIO1MmXyk1;ngF7(6T!*q|(M*g)E=$+IlH;uSU^&JzQh%F+u9auy1Yr z&a1nbca0p@6NjWO>7B%gXTcAWPwp*6h{3DH9&-DgwJ7bc4}yKTnBcV8+Oy<5&Nw9G zQ+Im{9S3EHfqMGV;axYo$C)pe8t*yKy@PdQH_PH;YIt&m(G3=Ay>h!;!(Q(pR#&$Z z@k(E88zSXxOLw-re;S48T86wgL)c0RXpYSZU^n(AcdEy(y!NfrZ1#>Zdb_u`IvA1kjC?Gi=Nqdk#N+n2{VBDiuOLOyyJwFLcMoX?jH7hpRE64!FzWuHvzK{ zEVILT@GtbCX2OEc_m5qZ|G&{{7MpT@4w~GFzmM{a8{z>5 z?&~4GM>r@{%j^9dOF3W&xFD;3njuJV$%k2dW==XGL#F)0`ORwW`ABsxgH&n5Upa9RWEN&Eu*44>)+fdt``S${WSkGSoKZi%PRLQdt=o;yB#C; z1!EztXY8-s`>V~3`!bfbkD z2mUpab-HeD7$KY85w}4hkIfCNafRu4E{gp#Zmq%`(u@zjUQFoN&4ih+Pf1qw{>_9L zF4xOz&p%Ceu^>K2IX1h=VVfr8b;KX*O<8xYO0as}$X=#qKr%AYw;3EcGq*^M?L>z| zZE#WR0mo6PAjJ%lpqp5FdlD#y%8dlLLa3kDW~oRXgbo<8xR5{Jw1ACeK_l=ycA6Nu752;F-r z3@mNpj;gp6CSI<^bB#CiwU|UZ_hvYTHgR3dn#Us#IkuR*+us`KN9%@N_Yqv`u@6L zE!hmTOZM21MMC(aHDNFBz%%^UZ~1&)*FN<;wqKc1(A2IO+kCbT6;6db5*ycB>Udzr z>D+xv+u2FU3;U%_Gbw)KRQcJF(twlEUz{)zg8ZNhpYR_}oSy`Uu3^%COHvl3F1!jX zS$J_?z1}lk!*;6;xX`|o3(xj&qQKbX;M%{X-}TFVhv6!4=z0C2Ao1>tiiJv2r{Km5 zdq$u$T@25rAkx=@c2*M`bGpkQBHYAMo)W4wJ^i2#Ra72oud*7H2Mqa^S7AZR!h-*O zrBj5=BQD6;XHKO1!CipnrcaUO!!=Xm?#Br%Oh4uniqiae-^q|il?(}AJeJs>Cm{J* z(7)^Q$cS zi1AzVArFTsetPoRZ#zRZ&G?+QtSazFjkFD5p1_j#+uDtMCEifC61nx zGw#Uq>duFI&1q`pj_=J9L9F942tjRgn}yMLfG>GxI8W{e!ST4=i0ZnVI5Yu6U|<;C zs|3ReA6uNmKS7nNt?RQNhIE4&nOz{dewLmlD5lqvt;zdx;AeYdR@&W4=xJX^()&4 zv}dM*#mr@19!v<VTbU{y6LL8Vw2vbV zg+;ui4R4g|YTOG{=%(wjtNZzM*WQfiA7GAyZKTDn@#ZZf+A;I1lJD9@F~w__MZClK zaU*fM+mrT)Dca{&Q5=8x%LoTIk9%(V-SQwc4@^kqCev8OH=lLV=j~x>2v?cVp|8xq zPN1iJ4am6PFtUy)z{GdpWW-Jwe>Be9GG0+p_sP%bg9^$)F~WN4K#*W@{=I35e;(L5*w)eCbW|6?B9If*ix*gYzmwfu?>tvO< zrmyKo*xV5FrS-<8tZpO=Q9R*9ud?nh)~2LFau2|fEmPBAqG%)9Ay=GH4*g@aTDLdvz2n<61e{yqnB}4oW4wRPrdr}m?;`kQ_i{z%tt3C^ zl{DUos$6@NZgH;O24xlQEt;w@b?K~F-_7j|c9j7X zosGyt28HI*bUZl-#Fp3g#LV6rh-g@r11}_%H=D*g%v;RvT9=C7QEht$7U`jl%ytQg zcQU63e)90H9+ujb|HKAYM7~)L2=8q3p>RF=Z~%g+xGnA2@gobHoSMT&EAS77pnF}1 zu|okO{I_jurnX|%bM-=U0tL=SVmU23$UXAdQWR+I<7SAba2(B?u`6>n{4jjn*k1CF zY`_pxoq%19gYD|IH3XrQK7jMR$K-Iq1@&f#ucdRTYoVT${S$Vh?x`|QBp>_lBm+0; z-^M-R{}P&M>5L`_Y*4XankJ;>w?2IkO&E4dFU3RONuc`@bc-A|Kn>3Aw!Fmhp#wEO zIg_>Cu{a#@m(=tji);)r(b2zK-U9X?td1oU%k!YE^|AcvLu@5J%)-Uok-P_pw9(|NSZi%seKCnFWziNl~j}_wnr?$TaDBX@eF@{_E}{Avu;*$=(aVZI#?DzyhK&+ zg^4+fXlPC2XZ!0=#nXSZ-^#;DJuOf&ye78Gl+^JPCb9yR`6xrzjrM}0`tgksnW-&_ z<+!=yMki1I$&G~G7ieJQUvUj{M}5=cC|BA6F1?11tlrvH2UzXi{Fkj#f|BqD^S5Vt z2X_E%T8JWNV;oFc!SlN?_^}^0F6mf@7Q`9Bvkj4*M0c;v61okxt$)#l>P#=#ivVHS zG0sG;*6B~6T-M{fhm0h}L+&%UGZxfc1Q>W$ybEnmfhSjMJ8rF^fsWI2CjfmA8)Fb> zra-=IQ|(16kF5b?J-}ON%+^N```KY=!nJp z`KY17*-Up!iNIrhF+tt4S7Dsi%={wbW;YJ?*&t+By zA8!qwit@C!l;$p5>(GQqaXwr$>xOJD1}(vET$Exu!d2T+O%R2D}l? zv!q5BO&oa7AIttO1}(vG|W+PJQwY1aMh-9 zUX%(ouigtjIhL=)&+$s3mw}(dNpe|~?(Qx_w zc`0mON;~QcOu85~Z_)2D=29mRwXZqzX|w8H+F2Uwqpjf%rmtpo=*NrL3Bvx5R8S@@ zYRd$Y`wqYw1Eg!;aIokdX_)qlXYpUplylS%#6ws^6sNs;EZ_1oEU@a_TDKG1c>RvQ zZl?OGtFr0)>?v~C|$uJznw-I zS&J&pD@7?Am*ixh9f>cNXLV0q6f zu-K90S}g*YE`{1)cbXx7LksKHW9LjkLwxh;Vqa#P1o6EWyt<7UaBqxOojjU$oMVr3 zSPAh87f%Qe_beKZpsv=Fx)SD{URy599s;7*-3A8P0|2iONhjX$UvPe)=WrR1>ZcwV zYhFq*Nm&WY7HkWbfDeDtj`Y9?jOJDe_~9a`OGyUf`a?!3dzZg1f^JVKT!EZ97IfdKk!<-cnItV9W4VG;L@ zGFE&4yJ9C&9TTp_Kq_b)U#t@aJEAM!yS%~XCKyqKuFPvLleT6g&bXF5U7EBdI4Ns% zO@d_5OUd1m1VT1o5F3T;-ZhClhthTrWf!A4J}@j!hxkh#v(&uR%ZmIm_Rp1`p=x-& zBF;IKh`2)g;`pk%kEN1gLH-zi zBWdX%htfRnuBa2^7q8hAfM{Uh+1a*pIo4~v%1Pnwg)5~@A?9M z`uL4YP;x;C#nG+TFO=y(?aJ z;9z8{tISD%D5$E45Qr1+!1RufzBFNaZ{qcf!0z_P45PVezZx*OB-!B+$3eGtyh+yr zi0ziNH_-*1esDPy<2k8FI^8=yf;*7$v!#DdMHx@?MpXc%DGb|J6~rz*Ty$wNlQ?gU zufK89t4aJ`zFOb>9^R9 z0AcLN`ZI!FH)bGwXX35tCwu8XWh{o?jJ?-=Mt4ldZ(^=aH;sa4R9pC^=t4%chPm~9 z=)TqLRSMnTyKfY-xCT0Yc4C2mKdk<4nQk%Yx@<_XcOek*g+gj{c|?+5kSRFk6(rTl z$%_-fsIJfIFB4!h;Msf6fpJ=1vtV8|l*QZ3Ty<8zp$q;KRp>z6Ng%;|CsRzt8L`nb zF4Be9*ZAQq5W&dkbj$lE$PVn~+(- zylhg7iGPRKAJe2$?8pc8uUfDS>D3?4twGIyMKCR||9@PGfNzB|oibGbPAttSBmw9C zJ9+2NLk^BqKH?p)fmL2fRn{jEDQtCUpT?_91YROuE8z5YA!X*d~^mMR^6Wft8!@wr?!$`X$#~QB_$p9Xc z=#E|QU{BNxj&I4*HYvOX$6Q24?2z@Cs3^~X`mH2oZLK?8{Qc;@?mI=RBZdx_LCOA5 zx3y67fu{@@_J`)c)SSJh*~enWfPJI)=>~Bu8~1JU2B*6{(ps)w+L0M}cxtHN*x^`8 z6crT$1-Km^6}u9=6X+LC_lAN99RGZ4{|q1UWv_38+G26z3nl&Yt^Lq9qCeILJlKsT;HILB2g|SD*YeL)kgX?^KW*gJ;#Ksf$_5B~(XIi^9_|ppn zZ+R7i@f$1lA4wa)%>d$!*YB08C70k|ZMJ@WbL^&`394b!*+O1gCC*6=1QzoIgs+?VHy<#6bKp~Qa z!vbZ-3I-@nmasUnh84uZW39KrF3(3tz7`AnKFZ(7>{*a_Q;iY9E zf4)Uv%p&?g79KjdN&%?4V8H8(_X9MVg|d_O&cSYOI+zH4%=^W4&vfeiXkABmtQit8 z;Ml+vE#uXqa;i7fT=2V?o4(FtS{&v`a-bN0OP_?3o5dHRbVaHaa+644Ct9m?k=f0f z4rCfvG`cw?#kb78-f_-e!s=)n`q?hWXSfZUm#I4HRwodQK*gmzM)H-u@MiXVdtI6H z%Is!|3~`NRr7Nk#NqX1=HAFD9s%s*}u6xbs=181Eag=xJ zPJh0B=90I%nwhIyb0}lqzsZTR zH&KAuOt<5f&eb}j|0LYC^W*dnG=II9gj`$CMG3l9yQhnOxvEKov$gsK3pN(U<#5Zj z^;RxMcmI;@^JU;(ldQf7rRux!A{C~Lm@p0U`Nl0w?vK{@zgzkC91`reY`70{a!24$NPj(IZNajqEYenBx$SFAvQz`X1hxTwoOh$rPL%1gJq--SImDX zrjLBKoBHrX>x(rg5z2k%CWY^GN|^^4w)!>R`WP){9#h4nL@FQKXKUCsg$)<~I&!Gt zZ>_fZ99QGmp;A({P$5@j&kGUtyuLoy?@O7q$9$J*cabqW8{ORRKLfT%Z-PA&AwID! zz2_Dhm!Qjv7ZyI>f)5fX`@6XVogqsce{9+_pq(C~K}5SR4=4*X!gC5h=TBwiMkk*~ zazEVhV7|*Vd8coI_pO)-{Ou@P-HbCG3R=~7W)G%Xq-%SrJAL->tSOfu%(?ncT*SPl z3X$3B?S0Td#fe`WEJADt8_&6xb}*M5cIpIwBl{w=fD+-pg-2C2(xq(J|1$bfl%`RI zdASzo*%>CyXzm+1w*(6?p$WRZN7eDr+nTq5Bz7PK}Ib|m> z_3>J%=slyCNl9Zy6nk+BlIBs~x2Ac_Ry0#G6Bg)~si`Qb@=>L-#r9 zi-gudr$kcCf$p@-eJR1M#nbdLo!%M@A5%%d23-377%LY2xw5OBz{`_DBV=Igpt1k^ zH#dHH}k?x4_1Aqw0)GG70ic`YfRhR=hr- zdNR%I(1}u<3EDtL$v=pjsVxS9d1QLY8r&q?aIUc~(M=u4HDu7@%!1IE=BlCbLoMdPf~$!hSGNbpYS$%RZ7X_6gIEs=5I9%TzQ8q-XdQN6`o#^JpE z!Pru(3esz)GTlTH^kt6d8OnTm$QP#*d^=kxKvs{e*Izg-TJThnq!?%X^6i z@x9W$yKDBlwILmj0!C-v$YRzJ-M@qBZXNgt6MN_X^uk-wNo`5Cy4C3%&M@Mg;_*QI zp=sQ&!b-x#MktscPeA^sjs+Pmx+4`bG(5M7tQyoUzTuHkemQb&i= zv#)|f5%+?VW;6nj1ypwgY4Qwlth!-f%reRK!%b|-+`==pyVQ;F&jLKb?6pwajrV5? z$~U{WaF=eqj^kDGUP?}${c<`JpzkwL!W^9Cwcqc4-T8_&j_$ckSuk1?^hM0n-ibS` zTA7%1WOhJZ57YaPon%)Tr z{Tzp<{jzjoh5h;3%TCAkzr4hUgr=+kr^$5L%&C%DgCX^Y`}?7mm!g765VyfnISooz4m%LL%MoCl?m+?J}dP^c9;k1`7Q-se64MPRGy!OEoD12LaTko1g9 zpcDJzgDlpK*%82`LE?Hyh|KYF{f5u`UlnMbCgEj&1HVdWs}Se+#Gr`>d8B-F?P6+k z>6m?Z#BPQclTmm4{aHylWhtpkPYxT-yupB_IFDYb@tI*TcyQ_YF= z2!NsQ7)vPn1;hez#=LH7@4qE(5vI{Nx8;-ftPtolBMJ?j<9C`2&hUkXhkl6=*VxeG zMrrh>v=4(TFt}%nzaAYo)8`4BvR$VO-idsB6iGcPOs8Xo*NtbQXl8Rv#GBShpb}gq1mL5!+Sn;D0tc#S)+i*Af)}9_9x8WC?hmtG zsDO);M-t;Ia<(Vu|I*ct<6iveMi5+A)!s?Hd)w9I&eqxK=`yB7->gCeUTOlWwhEF! z$L~u7C|Q4<^{UPuNzCKvM|J$Z1YO~^_dvE$cc~=36AR~Bcqn}k;>3P-6-b3hD;oZ> z=)^z;`3*-Gu6LZCq`a;Mk0?uKcnk;wvHLexb01`9qU10`m9MJi=H_az8_ zC*t0*WJzZ+MBAvLP`_s}7Q_k1InwnT^TzQyzW||Iwp@&1OCP!!9Nmowd0^gV9d3R* zk8eYy*RVwL*I*&VZZcyc}9*m>9_Q68Eov_!M9BX%H89=7{7TFLCDjf zmB5`|N=4L_vf2QPQc5i)-?sAPol7IZd#h_D{}quYp~CU%+G(?!4NXf{A@PgD7&}gg zX%8h;C;dx+dUt7@8xW=b7CbIxTcKxdeI4V*PFw<_L-ba@rVgCg_c+#`S0^&kA^jJG zd?jFiV`Ppc#2iY6|3!@R|7Sug10brB4D_JE#tNsNssV5#{?)F#xdTJU5|<3(Mq5n& z96ZJU7px@zen&JaX~`Hus!&aQsT4dtd5b60LzXB+1M7LDX68U=iFVJ#B4u#E{SpAS zPNE`W%lhbFIU}R>s$)y^tL*RH3-aa^uU7p7JRKc|({q3187x*RrF+W&{5-nkPJKoA zi6iWXm(_`enON(G34ZjiHBb3rpgSNJ%$BXI@Mg&R4kl_GG#mOt(fzd7t<(9Tqg^xuaGd1HOEk}u`APyd0TzEYil-OdM+B@6 zO|XA-xyCv?=>*Oshf|VyH$M(4i^@JaEYs-hdb*u=&B5X4AzYHBoCjs9RQ{1@wPk!S zTLL(Gak1k{+x|jx3R_sewoe#+a991A)1+Yy9=Zx#2ic2}dC3AI0+Y^|I~nOcpY@ei zQR)$k=i>(O9E(&f0R&z_((IXS-2b8Eo_JI=4nmU@S- z;m_P2e4?7+9FZheqr2D+&IWixKVrV-1*Y@^$1?<>5Z$f z?+f8?4NQ@7g>{x;Xog%5h4>E?B~jm911FBwpYeC8c0zxL&Um;ah9$W$W(?8}$yDBo zD-ZMGGU3hmQ8OI0w)S*Ut4{}g78cyu!288A8vxSi;pbl+!dv8{^5`m|1Yh*2y^uHb zN89*Fzi{VMPMc%f6$}k%Ta^8dB7}e z)l}yo@hdjXiCyFwKWntRFzG)tD@C+hPpm{MIc2!6{e2ReKxc$*v~CKB9^=~rXj!H3 zYEb_u$w9$Qtu?h%odBL07qqIWwx#_|9vQX$;<_!!_susxLbo5gRs%a_n>fD{45xXo zM>chXp3H7+hEq;=n~f6u_>o?Skp&KM=cD!mjuI{=GhL__g2vR!qH;aXGOyd7;XKW~ z7iWUcANS>Un+|Ql;N`=8d3VAD3?ht_$|m`3HtNS^ZYq;wP7F{TFOafv zvp2L{Ng^J)ebU@|bt)3hBMoLh^dZBund@3Ne+&HB19>jzO}wv8s#z_x?v{&7X2wn- zJ0COtImdhb52pVlcO)%hw-if=rT%3%vOybY5zreBSYl$!p2bDstG8AShXt8cX-1}V zv-$GKvq0L-g9KUq&CUXe({M(I$>cD9(&#~NvOZhUD;zy%E=fQU@5|)|lrZq4|Gcj3 zALRLk^`23Bu2uJlB$o?xB8K6S5bqIy|!wV$LPYvoV+8W zk4!H#XJ*WmD{7)DUi1D{xZh=U9=q~T5JU!d_1k|Eu#j=Kj?_29xE~T7Agl4NT+Jz! z8FODKtaG2^opq3eC#4;WA1pEC$}?3Rh=?j=ndikcbk<8mVuZ!0WFZ2BbI#V*qYwe9 zEp&j?l?ll<*#HFStAJtSmY4+Z{G?=43vGq=iA?OjsX_GXY zVsX$SyThStK&dZl(|60a$h}@y_kM6XyTi$k-JdI02LQEJX!lIuXVWyV2C6g~62kPu(}Ifi)l-=rE< zky`?7^t#)&Vbm{zUe&(fkHuM|In6gWEQ5svRC68ld|d;9le?@$gX54QV#G3dx10-l zChb%k-mFA6;ZHMlFQqziyafiG9tL$(?_VX?*8v?U3XC>|6W~0}SZ;n`jqxBLW_^ggAp-nvItqPB97COZh^EcEDHzVQ(4J;_P#S@>dR54#!1Ja6w{;6+#Pe1WZ8axqLqxg+@+1L@= zFL8|m1}w*sz8WU~`}GPTQhpX3fTi6Fr5LHB!IW}%iyEcon427=yyIXzt$md~NYImf zUYP#4*QRRn3}98>y8q!}kS@@Fzv=^JZ?mhBMy~1Au?Grjc543AIsMcYSJ6Km%+f(Q zPj)i+JV>qa%%8XsLgHqu}^n^grVv z|4%f=L!nVmPEpZ+e4$$i>bMfat^Q5DQf0EVd_D?SlRm3kv@IQBe#J%idHEvc>}+$8 zdU`eBMAp8Z>7?y~!ZL1=S|dx)qQBx(i`bqpv-EQtpTmW2iHxOat3_=wHOKzbCT(XymJE5VwcMmo3;5@{yapGA#X*Ue{xM4!xt|P4Ape)2nKw{&H zf0@PI)xrGrkxMXXSAQ)1bvI>DS6b(-^@{%iUv}X6Yn`cKhJWpytc*%@UaNs_PZff0 zrgLh&4s-z>=P6ay7QK;?JAoIOtA7v7Fj7$zEbp!xUgMM~V2iUyyEym{F9|N_+{kNfVfDp;(c zC!-ChEo`zTSp#%WG<9{Z!YDJ6E#ysMk4Es#^i;~0eF z!h3TdKIYTuzvp^-aNA}^#gcW6TRdX~g0F{T-XL$T4z5tx_N)dISY!~(9#@~BV2ZSh zz(Uhh=ZC;R@56<4!=da~V+ia&A4V<`v5J0c#??-_;cm}UnyuUxiOS9hrhJVjrIC4z2;hW(RqWK)p09o?esYbX-5P z48F~wR0yBMW}K)fwjW{*a?*MNI>sKR{(FxrOK*2N_X^WaFQ&%#dhCZEfbNi+ zip1E0K&;lN*=-QVu$Vz0B>aq&6X$EDH_6Agj3HTpSHqr5$aY=h0uKl|{ zKfEb`t?DIL81WdF9mJZ1I(}u6J^FwliG_*I+)YTTAs0ZK&f`z;fWls0`-zBBYGCXUFFQHRo0z zHTTH!vau{axYC{}xE6@*q$8{)C6->G)@^g(=5qB8-WYfmYsRb757~&J-i|f9eV;cX z?!5dPyOb7Nyd3g)4mSE@u}@2%NuG^gSX|EPndu-6*a>neG9Eea?LBhFIZt$Ga;|>! z>o$G&*LC>;Va(t3lZ~6}@nDKB2m+>;bDVjF#tFch?`rF$6LZ&haqIaf@gE$3h;go} zJ+RH%?2LVvTXtUunzeYAvPO$LE`*%i;3AjiJLdk(jz_p={+q+ViNLdse*c9(&xZf= zFb&StTK;LBFxG_H-4R(#XX)m6T|W8XRVmRN|AbdnuNv==a+|FkAmm#3$jFX9&Ai^kIQmu+byzpfh5NRtJoxr+vc??G?KlWke!-JX9R!uYb^?4Q%VN{h zb%DL>e0e;ljw-D=Y<&L-z$?0wFo{xhJwwc&7zv_F}vL zy}66EJiRv}7svQO1L($ZZW(;zYGRJpq_yRMEk8%AMqbwb8$1|uJ$^mr(^2==eHAN_ zSY=nb)XQ={+Zew@9{bD8Pf5>pkp#q$t-HaVsJS2;LvCTNStY#lofaeudg-Wlqq z+oZJrQpVz3Po;qCJo*fW$e3ZDG&NmuUD;o&&Q1C*Bq#d>h`O%m$oAA|x#BKEIUKHi zgEf0_OCPUJUNXS3b0y5kr9Fk&rL88pY*j~M#rF{wk9j(g{Q?>Mb(?oA|Ll5ImS5c3 zJwx(K+>^bJ!k5Vsa+*F+e>xMQrZ0jm59B&N{+YXqpS&{bn3V`_eJr~QcJ^j(w5j5T zrOe_^zHuNFZLs_L^lwpPeF~k(Z+@eC+=>Ll5NzBBM>~2PnZZpV9W5C;oVo5za|zlB{xo!y=oMKncBdls(Rt6 zrlQgZk>|xk{Wl*B5NVk{*d;k%j7G0w&`Xuo<@$9z5>Y=&Qs#+s^yt$mI=FYeImPCV&{!9P-wR3rF^zS#wO?}_PfBNy_H3II{jy?#^wEE2M+s@A~Gd;-2NT~`HVeF{AP z!#(%j4}+e5N)z+nwE&2tzkdr7EDkPLu@ZvSNJT&Pwwyj%;%?BNvtXU-)20ZwVX`ye zCLL>|&Tq6h%@Nr0gI$~fJ+_yJG1T0?SX=lWR5UVe2mf=(%&SO3OH0c)mmCC^;5t+Y zb?5b{%SgaUJEBj{*ky-eTwU4H)a!d%@Se;9CVOe4Or|pjS@Nw2_uD(^X#V zyBogyZuIpP=LFi9%{~M8BrZE)J=`L0+Re?)v7xc?ZE~yfF=!qp##fZaZN_?ZaDZy< z@9$UXGLc^tk&zkMaY447p-P6!GCq)4M)^HN;*LBFQOc!cU?K`qPKjC!(}B&)voPX` zVtvOk7HQMWf+R(50c}@vMs2s}!~fv3E>>01f4(>;Na|`O-~_#>41{=I`*fmU^k6JN zeV<#h1!G5G(#8F6i2UeH@ZIJrPB8Sy%V`@JB-uZlEC3x}J@qqt9Un?6-_?q_&B0t? z?jx&AjJh{aRc{$PnNuVcQEL|xfh%n?*R|*a^K%Mf`@j1Y(iR1s4_mM_?09(3PWzda^U+a=+cW#oB~OK9S{N zowU#K-$mP;t$$7wYo-lE&t;8=_7$-rZW`-5KnWj|Nd4M#Qz^!eKV!8Ku?R=nW2XS9%>xAa+(B=5xt|85` zzyx9Z`_J%j5)DBHpl{cfb7$Sb-N%=K4*YoKX0sJYy8tjkE>F$}{GkI7=p^}r>fbZJ zyN)|87{e(z75EKpOoFfx4$Imi`JHl4$XSKRxX?8zSUPi{zah(h_eYRrkFD5Cn|6(z zZ0~;?{UlC^>qgLMe>fHYe_-y4)we(<3^sCvp6_?T@{=ja13%(cr=i<*1OV^>UU1O< z`viZKuSY7rErIk$>Z%M(*ICH!zum!5Y-Pa@-GaalKP>_Tv$*?y062pHoR-8TS2nx%RpB_Af#5 z#2FI?S1@PX^_Tb}D`wUMJ4J*9k(393fG*#*wF1;+xoYINI+i7HFa;$teR8?VYFG%~ z0p1p8s4ng+5-s>7iSB<@bwl}kdXk)+`On_wf4-Ttw;Lb7Nag>j_XRuR%EVYVUKc*Y zWr4$OzAqIerQJ|?j$_q;mrXO$pjP$LtdoIx3bg&pMB%igggJf`NaXH=ya>xdo9<4K z22rLX66x2#tjx;cv~=k@!hJ8_(H+eA-HwZs$hG0mI%0aI9xI>vRKf8BI(blQG3`BL8kS&XI!9JH%ENpP;g zNVg!r_0A+>|Jc^mq(q~ZRO+9eaTZZ<>2CtM&qVzu>afI!&5}g$lQyIgX3j^#b96Sb zsVUXod%ohCK649L){*MJdm9UFoY(w?bd6Q|am-cF8ja9?%hR{lYB#W3c@>lCTw8)V zp3LV&Y%E(Sb4hfHW$NF2(Z!ongr;X6d{a%>An{-)yi?dX{X;t6`b%9z0sX__rT4KF z1oIQT8qb}d-QZMuf50X1(y21(1RWF6OdJ$f|_(91VT;pAajhyRCS`wb4-gM%^I^@{z`X$U_C7e+&e{No5 zqLwk}slF_9`B!h38}W6YF%FV8&QQE1v(QmU4x)HvoRh=Di!h#ebl@xthLxq0Q&hI@ z$cE*1S^EX&@glCYB;oJlL^_ZVE02~z;<4TF?^Nn!^s~9viS%{wMp3k8ll&h?dMKT< zJYbj!hqNzo_8Q6=#Rv-T(KT<)O4|3xHlMX1FUOTFGj?(KQtNSLXw0*gTZVqDTxbZj zm@FT4v=UV9Phj#N>Nt8zKhq1k%NPZB5}*mkB6qy!vx5CC7vl5#olPpTkfJj434Ma} z6tY4bYZVf!3HRLj-g&wELma~8{rLLNP7potcUZ|7)WYGDH%dYEzZ@CF~sLEz}$BK9k^QAE8xTK%`#P n&FAV;ge#o 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 From a5ef41c0fc150d20f895d4ba579945c2e09a9af7 Mon Sep 17 00:00:00 2001 From: Kraseo Date: Sat, 7 Mar 2020 20:31:49 +0100 Subject: [PATCH 08/12] adjust numbers, fix shuttle dropoffs --- code/__HELPERS/game.dm | 4 ++-- code/game/gamemodes/objective.dm | 2 +- code/game/objects/items/melee/misc.dm | 2 +- code/modules/uplink/uplink_items/uplink_bundles.dm | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 75e711ad03..034b5d1825 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -564,13 +564,13 @@ var/list/possible_loc = list() for(var/turf/found_turf in turfs) var/area/turf_area = get_area(found_turf) - if (specific_area) // We check if both the turf is a floor, and that it's actually in the area. // We also want a location that's clear of any obstructions. + if(specific_area) // We check if both the turf is a floor, and that it's actually in the area. // We also want a location that's clear of any obstructions. if(!istype(turf_area, specific_area)) continue if(!isspaceturf(found_turf)) if(!is_blocked_turf(found_turf)) possible_loc.Add(found_turf) - if (possible_loc.len < 1) // Need at least one free location. + if(possible_loc.len < 1) // Need at least one free location. return FALSE return pick(possible_loc) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 2ad3d84fd1..a4b1f68265 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -1168,7 +1168,7 @@ GLOBAL_LIST_EMPTY(possible_sabotages) var/found = FALSE while(!found) var/area/dropoff_area = pick(GLOB.sortedAreas) - if(dropoff_area && is_station_level(dropoff_area.z) && !dropoff_area.outdoors) + if(dropoff_area && is_station_level(dropoff_area.z) && !dropoff_area.outdoors && !istype(dropoff_area, /area/shuttle/)) dropoff = dropoff_area found = TRUE diff --git a/code/game/objects/items/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 3dcf6d36e7..a75e881953 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -378,7 +378,7 @@ item_flags = NONE force = 5 cooldown = 20 - stam_dmg = 45 //3 hit stamcrit + stam_dmg = 45 //4 hit stamcrit affect_silicon = TRUE on_sound = 'sound/weapons/contractorbatonextend.ogg' on_stun_sound = 'sound/effects/contractorbatonhit.ogg' diff --git a/code/modules/uplink/uplink_items/uplink_bundles.dm b/code/modules/uplink/uplink_items/uplink_bundles.dm index 039a29a69d..1c7d3393ab 100644 --- a/code/modules/uplink/uplink_items/uplink_bundles.dm +++ b/code/modules/uplink/uplink_items/uplink_bundles.dm @@ -38,7 +38,7 @@ specialised contractor baton, and three randomly selected low cost items. Can include otherwise unobtainable items." item = /obj/item/storage/box/syndie_kit/contract_kit cost = 20 - player_minimum = 20 + player_minimum = 15 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops) /datum/uplink_item/bundles_TC/cybernetics_bundle From bbf43b0464d870fa3b723f12973caaf885e37f4e Mon Sep 17 00:00:00 2001 From: Kraseo Date: Sat, 7 Mar 2020 20:48:04 +0100 Subject: [PATCH 09/12] whoopsies almost forgot this --- code/game/objects/items/storage/uplink_kits.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/items/storage/uplink_kits.dm b/code/game/objects/items/storage/uplink_kits.dm index ab55555562..d4d45b603c 100644 --- a/code/game/objects/items/storage/uplink_kits.dm +++ b/code/game/objects/items/storage/uplink_kits.dm @@ -481,8 +481,7 @@ /obj/item/clothing/gloves/krav_maga/combatglovesplus, /obj/item/gun/ballistic/automatic/c20r/toy/unrestricted/riot, /obj/item/reagent_containers/syringe/stimulants, - /obj/item/storage/box/syndie_kit/imp_freedom, - /obj/item/toy/eightball/haunted + /obj/item/storage/box/syndie_kit/imp_freedom ) var/obj/item1 = pick_n_take(item_list) var/obj/item2 = pick_n_take(item_list) From dff0e03f11803ec7b6a8940bdebf08ae20c3d013 Mon Sep 17 00:00:00 2001 From: Kraseo Date: Sun, 8 Mar 2020 00:27:16 +0100 Subject: [PATCH 10/12] fixes null runtime and baton inhands --- .../antagonists/traitor/syndicate_contract.dm | 6 ++++++ .../programs/antagonist/contract_uplink.dm | 9 +-------- icons/mob/inhands/weapons/melee_righthand.dmi | Bin 2806 -> 2804 bytes 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/code/modules/antagonists/traitor/syndicate_contract.dm b/code/modules/antagonists/traitor/syndicate_contract.dm index c22012fe87..20d07556c1 100644 --- a/code/modules/antagonists/traitor/syndicate_contract.dm +++ b/code/modules/antagonists/traitor/syndicate_contract.dm @@ -2,6 +2,7 @@ var/id = 0 var/status = CONTRACT_STATUS_INACTIVE var/datum/objective/contract/contract = new() + var/target_rank var/ransom = 0 var/payout_type = null var/list/victim_belongings = list() @@ -13,6 +14,11 @@ /datum/syndicate_contract/proc/generate(blacklist) contract.find_target(null, blacklist) + var/datum/data/record/record = find_record("name", contract.target.name, GLOB.data_core.general) + if(record) + target_rank = record.fields["rank"] + else + target_rank = "Unknown" if (payout_type == CONTRACT_PAYOUT_LARGE) contract.payout_bonus = rand(9,13) else if(payout_type == CONTRACT_PAYOUT_MEDIUM) diff --git a/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm b/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm index 42af956e2e..35470cdee9 100644 --- a/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm +++ b/code/modules/modular_computers/file_system/programs/antagonist/contract_uplink.dm @@ -129,16 +129,9 @@ "item_icon" = hub_item.item_icon )) for(var/datum/syndicate_contract/contract in traitor_data.contractor_hub.assigned_contracts) - var/target_rank = "" - if(contract.contract.target) - var/datum/data/record/record = find_record("name", contract.contract.target.current.real_name, GLOB.data_core.general) - if(record) - target_rank = record.fields["rank"] - else - target_rank = "Unknown" data["contracts"] += list(list( "target" = contract.contract.target, - "target_rank" = target_rank, + "target_rank" = contract.target_rank, "payout" = contract.contract.payout, "payout_bonus" = contract.contract.payout_bonus, "dropoff" = contract.contract.dropoff, diff --git a/icons/mob/inhands/weapons/melee_righthand.dmi b/icons/mob/inhands/weapons/melee_righthand.dmi index 7284f43e6046c2ede773573532f498c1aba31cef..9c734fbb9394c292453de9975d0dfa006c6d83a2 100644 GIT binary patch delta 2278 zcmY*Ydpy(o8!wtsF1bc1nvhGVjN>+QtK@R(M1&ZMa&5&lmv1HJQZ7HVn7hato6t{% z&?=qNWfDei+p%HDVly^lKmA_k_dA{EkN4~KJkRU(dEW2$=XrR_T;(Rwc7S%$34S)A z^jld3>Whn#bJ3Z~yl3%)t@c_yT#$Q)w)PHhF`=l!tDSIi<3XbN>Xo;ULy4T)&mYP{ z%5L~XFr69=w*82k(hG%~+r-0qznLCYBzvrseZkiikDLZN42^^X?|M0&3W2`#afF5;1g=K2iiP<;ln~ zM)Pn=`Hi!^{ck4?ggS^$7*$i3Ytcfs$_e4o<#-e>t!eIw3=r6RtJMw_6()p zTquXY43q1()Z14qlNAvld{@C(90Qf+Y^LI!XV5gWR)jb0QAB_VVl`{)6&c6x)R`g~ zD6(O=(LVW-ZsHWSpDtAnY}Iv}!d{4sg)(Fx!pJLBw-4cWk!BvOvSFxj6H+8pjFi>q zD1G)u8*aZ?TQ#pZ#=AT0YVRBIPTti0hEuC81Zh-R4LqzKvdod>NV5%KBZD8~=4I}Q zy~)i`(GLDe#?}_6oH=4$H^epND>@{JjQR9qfLMRE>Mp|*_hRl-fdJf=a zvhyTNV{ct}$FaDSVZlKyx0)k`Q+{=!f?o-e7CIE5WSXiBGkSizbtiSFfo;zSD2t>u zFRea9eR4;k0zRY${S>pj1*8xunJ7>uTR~P<*B!e|L=@NyltW7q9I?3((G3vr4}O*B z3O}*$r?7o_!dRA&$lPeRIC6;deuP7=<+P`-vJVeR3UY)<-l`n-6Z`8#SE8Td5Q>3q z=>nczPobhE>OPr-0iswImr3giJvD;@iV zn6I_Oz>^kP1+5h!&up&!BIJ%NduF!yU2)%2)Q$B`AsM&)H-iJ)LLT#uDF!Z2a24$j+>0hq;yv?F{8g(O%&S+!v*(0 zR>aToe!IhdT9|GO6pA{r<1gWp641!11wE(q>tV0dxzV&)+txIj&_@(|wnWZ^gI~f? zA{sLxqttmPZo6pno^TsqPV#T(W_4HKEYCh|*()eKBP2PtX{_4723UI4IJs;3LW1T6 z&Q&};_J&&kJ$zP{3dTgI$~k`OYw?rwnfMHA^CN0791oH4c>hk`|LnuA!0wd(~~woN0GcSZz*qaiB;UFivso zJI;SW+)XkO5Ul;F_uuHLHRLvvq#kHO1-MTL5EB;-z`6DSC0RIXWNKj0V6VE$b4t;C&YcBlv4>o4auLDqZ~!R>OR@$* zlRDI*kFH+!co&UjjqUavFUf7gTBKi-ddDB>i}Q3qWorN?{!fNZ5Yvc>JI+jpWl#A8 z2cPV7#n|@?Bd_`!4kO2n@+@I~8iegGz&9~Gr{$W*0q~jiH?qyQ25Dnrh_4O(1#MTS z>otsd87SwMIPYpJ0=p<)3JASZ3U< zqr->Hq&slu8g|(_|9xKDwlSD?4tr$^fa?aG)a`4NdwNPucgAkVCL$6qY$!F;g)!Kdw*gRV6{N++E? KoQMuVxBmlK%VZq@ delta 2280 zcmY+Cc{J4f8^=Ya5mCufhN(!@m6ow(Zww{UDA$tp_e+G#SjNni=8KW76hGBZku|&Q z>tF^$#I-e+Aq>LMj3vf08Z%e-+i%sBEjC&1r%M9 z@P40?XCo}|SY zd8tCP7|3F$wtXTp3jps`Z2mYI32GXnLl?#A4`}S7Nq3gG`WYBSle_8rBFq(2n-4Sr zbkn0^)ydDl)l_vfm5wz~T_86GZrztjUP5?jVXY=!_`It({BU5R#RWMtv7@~xx71a0 zLQD1Jo&M+9ab%mVYc0V*v985D>RuEE(#|5JvC4=Z@_A)L}R!9wS*ed*0T}yR5$bpl7yGBm-&$NHZ(1@kIq?hMGTEP56uh7C1?UV)uU3$MbNh@1|d^=>b20=Vc9+b<`5e0&kJjTMN1)L3`-F z^t?~-^6!xuFG>E1)-&Hp=k-kQ;-YCqUf_?BnvGc{V@fqR^1003=z-HFr3I=MHhr$k zlJ4xI39}J)h2CO?QkQTuK>FCrBK!NEN3LFI?sjVmKU;fVO?m4(fQV32>kTt^sr$%N zp+kZHv=qsXg(v-T7UVHkGe%K5Jg-J(C@3fV#KFi6oGW3Y_i+zAun3uM%b9X5tvYeM zp3%{34n0HbJKmSeT`{pU{<^G$mFGCQA)h{$dbgjYgLgk;v0_4NE@)EW@lNmZP<;yF zjIZoJ_QWhgxs`82g9?B zzA0uRqW`r|f%LQ&zdy^@(6``49Hax+@!D}fXr;=Bmi^XWl4sW_?sP++gR;Bh<@AMd z(fykeQIV?0)GgmatMMXWYM$8a)+^Q51_NhW4t!io%i&yrF_>y0Af{A>GIp+XZ}{T2Er=zP}^F)JGM{y8Cc+7 z{o`?Ln(gKmago%6ZbS?9}vSrGRX?XXJA#v|6`e4t2|@Is{Kk zrAukHnb3@hp@UNxAX%_nzC$8eUVJ${24^xaSdAifFW0nsO!lo(7FFe!EueVVqpmqC zUCejYmQ4q9iZsy4pXlA1LoP6JJDq)c{@}i<`rE5z2HJMMNU2nVhjT;A!U5_H;w7Bg z0d%ciPB9u57{w&OYnr1@Fj8#?E1gNjz*$JQyyjPs|NDt(mS!IFej~cAW39k>{hJ(B z2H@5O+1qMgzW5b2Gb9a*pz|DD`>tN!VbIlcKD=3YLLPp^{SZlx+poEkPPP<({+0NQ zKTgt?$9P^toF~Hr;$~3mR`bMS*M1r912m4kI@^UKn3Xs;?w`vYK*H9TKqk z@?g%OTV!PM;#;}t{5xykzR$)@ISTsYH3P>J`^HbU1ERJ?8vpaoU@C;Y;EYUbze=(@ zT>0rlJk0P8WO#qIqn4;rPp@>lS7^UWz0p@LD%Rwz;gaSHrmppfr-Sbb(vEZ=!+W!;8spNihZ|CsKOuh4thZ6D=aStdFd~4b9QX znzadIfN+2im;~XBB#wNxN85nD_slgCK+{xZ+n1%fKAW36*~rZEhL$HDQ zundn>1CDM~H;mO#4$E+3+b;2ufwVJanCaotfm=lULM;b@Sh;Dh-7qqlAS=GCuVq*w zBGWBD;n;dECgZrn;7#Sent0IrK`Rn#bI1ZE9M?u-9$-_Z$MFqW6 zU9qh)^tV6(nHGuu+M3ZWT2lNYKVEt_zay5!LhXb2g3-=ScdSI3JG`4+oLc-Cg*>B; zX16c6@Pte Date: Sun, 8 Mar 2020 18:26:08 -0500 Subject: [PATCH 11/12] Automatic changelog generation for PR #11317 [ci skip] --- html/changelogs/AutoChangeLog-pr-11317.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11317.yml diff --git a/html/changelogs/AutoChangeLog-pr-11317.yml b/html/changelogs/AutoChangeLog-pr-11317.yml new file mode 100644 index 0000000000..e49efbe795 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11317.yml @@ -0,0 +1,8 @@ +author: "Bhijn (original PR by Azarak, sprites by Discord user Smug Asshole Muhreen#5522)" +delete-after: True +changes: + - rscadd: "Synths, the open source and free-as-in-freedom species by FA user vader-san, have been ported from Skyrat." + - rscadd: "Ported VOREStation's synthetic taursprites" + - rscadd: "Markings that don't match very well with your selected species are now hidden from the markings list by default. You can still use these mismatched markings to create horrendous sparkledog abominations by using the \"Show mismatched markings\" button ingame." + - bugfix: "Body markings who's iconstates don't match their name will now actually render properly." + - code_imp: "Limb base icons are no longer hardcoded, should_draw_citadel and should_draw_grayscale have been removed in favor of the species-level `icon_limbs` var and the bodypart-level `base_bp_icon` and `color_src` vars. Downstreams should no longer have to touch bodypart rendering code a whole lot if they want to add custom species. Downstreams that have already added species with digitigrade leg support will have to append species IDs to the digitigrade leg sprites, but aside from that, the migration process to this more modularity-friendly system should be fairly smooth." From 0d66a40e5555f0079f3a3ce7d6fe230de003ec91 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 8 Mar 2020 18:26:56 -0500 Subject: [PATCH 12/12] Automatic changelog generation for PR #11377 [ci skip] --- html/changelogs/AutoChangeLog-pr-11377.yml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11377.yml diff --git a/html/changelogs/AutoChangeLog-pr-11377.yml b/html/changelogs/AutoChangeLog-pr-11377.yml new file mode 100644 index 0000000000..c0c175a943 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11377.yml @@ -0,0 +1,8 @@ +author: "Kraseo" +delete-after: True +changes: + - balance: "Contractor kit pop cap reduced from 20 to 15." + - balance: "You can no longer get haunted 8balls from contractor kits." + - bugfix: "Pods and shuttles should no longer be valid dropoff locations." + - bugfix: "Contract tablets will no longer break when one of your contracts is deleted from the world." + - bugfix: "Baton inhands for the right hand now shows the right direction."