diff --git a/code/__DEFINES/modular_galactic/DNA.dm b/code/__DEFINES/modular_galactic/DNA.dm new file mode 100644 index 0000000000000..8db1da1524160 --- /dev/null +++ b/code/__DEFINES/modular_galactic/DNA.dm @@ -0,0 +1,9 @@ +#if DM_VERSION > 515 +#pragma push +#pragma ignore unused_var +#endif +#define DNA_FEATURE_BLOCKS 16 +#define DNA_SKRELL_HAIR_BLOCK 16 +#if DM_VERSION > 515 +#pragma pop +#endif diff --git a/code/__DEFINES/modular_galactic/skrell.dm b/code/__DEFINES/modular_galactic/skrell.dm new file mode 100644 index 0000000000000..5bb1eeedfef92 --- /dev/null +++ b/code/__DEFINES/modular_galactic/skrell.dm @@ -0,0 +1,2 @@ +#define ORGAN_SLOT_EXTERNAL_SKRELL_HAIR "skrell_hair" +#define SPECIES_SKRELL "skrell" diff --git a/modular_galactic/skrell/skrell.dm b/modular_galactic/skrell/skrell.dm index 08f41199e4c7c..4d65b08743c69 100644 --- a/modular_galactic/skrell/skrell.dm +++ b/modular_galactic/skrell/skrell.dm @@ -47,58 +47,5 @@ /datum/species/skrell/randomize_features(mob/living/carbon/human_mob) randomize_external_organs(human_mob) -/obj/item/organ/internal/tongue/skrell - name = "internal vocal sacs" - desc = "An Strange looking sac." - icon = 'modular_galactic/skrell/skrell_organs.dmi' - icon_state = "tongue" - taste_sensitivity = 5 - -/obj/item/organ/internal/tongue/skrell/get_possible_languages() - return ..() + /datum/language/skrell - -/obj/item/organ/internal/heart/skrell - name = "skrellian heart" - icon = 'modular_galactic/skrell/skrell_organs.dmi' - icon_state = "heart-on" - -/obj/item/organ/internal/brain/skrell - name = "spongy brain" - icon = 'modular_galactic/skrell/skrell_organs.dmi' - icon_state = "brain2" - -/obj/item/organ/internal/eyes/skrell - name = "amphibian eyes" - desc = "Large black orbs." - icon = 'modular_galactic/skrell/skrell_organs.dmi' - icon_state = "eyes" - flash_protect = FLASH_PROTECTION_SENSITIVE - -/obj/item/organ/internal/lungs/skrell - name = "skrell lungs" - icon = 'modular_galactic/skrell/skrell_organs.dmi' - icon_state = "lungs" - safe_plasma_max = 40 - safe_co2_max = 40 - - cold_message = "You can't stand the freezing cold with every breath you take!" - cold_level_1_threshold = 248 - cold_level_2_threshold = 220 - cold_level_3_threshold = 170 - cold_level_1_damage = COLD_GAS_DAMAGE_LEVEL_2 //Keep in mind with gas damage levels, you can set these to be negative, if you want someone to heal, instead. - cold_level_2_damage = COLD_GAS_DAMAGE_LEVEL_2 - cold_level_3_damage = COLD_GAS_DAMAGE_LEVEL_3 - cold_damage_type = BRUTE - - - hot_message = "You can't stand the searing heat with every breath you take!" - heat_level_1_threshold = 318 - heat_level_2_threshold = 348 - heat_level_3_threshold = 1000 - heat_level_1_damage = HEAT_GAS_DAMAGE_LEVEL_2 - heat_level_2_damage = HEAT_GAS_DAMAGE_LEVEL_2 - heat_level_3_damage = HEAT_GAS_DAMAGE_LEVEL_3 - heat_damage_type = BURN - /mob/living/carbon/human/species/skrell race = /datum/species/skrell diff --git a/modular_galactic/skrell/skrell_defines.dm b/modular_galactic/skrell/skrell_defines.dm index 38a7b81d08d79..721efbc27bdae 100644 --- a/modular_galactic/skrell/skrell_defines.dm +++ b/modular_galactic/skrell/skrell_defines.dm @@ -3,11 +3,11 @@ // code\__DEFINES\DNA.dm // ///////////////////////////////////// -#define DNA_FEATURE_BLOCKS 16 -#define DNA_SKRELL_HAIR_BLOCK 16 -#define ORGAN_SLOT_EXTERNAL_SKRELL_HAIR "skrell_hair" +// #define DNA_FEATURE_BLOCKS 16 +// #define DNA_SKRELL_HAIR_BLOCK 16 +// #define ORGAN_SLOT_EXTERNAL_SKRELL_HAIR "skrell_hair" -#define SPECIES_SKRELL "skrell" +// #define SPECIES_SKRELL "skrell" GLOBAL_LIST_EMPTY(skrell_hair_list) //////////////////////////////////// @@ -155,3 +155,38 @@ GLOBAL_LIST_EMPTY(skrell_hair_list) update_body_parts(update_limb_data = TRUE) if(mutations_overlay_update) update_mutations_overlay() + +/datum/dna/update_uf_block(blocknumber) + if(!blocknumber) + CRASH("UF block index is null") + if(!ishuman(holder)) + CRASH("Non-human mobs shouldn't have DNA") + switch(blocknumber) + if(DNA_MUTANT_COLOR_BLOCK) + set_uni_feature_block(blocknumber, sanitize_hexcolor(features["mcolor"], include_crunch = FALSE)) + if(DNA_ETHEREAL_COLOR_BLOCK) + set_uni_feature_block(blocknumber, sanitize_hexcolor(features["ethcolor"], include_crunch = FALSE)) + if(DNA_LIZARD_MARKINGS_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.body_markings_list.Find(features["body_markings"]), GLOB.body_markings_list.len)) + if(DNA_TAIL_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.tails_list.Find(features["tail_lizard"]), GLOB.tails_list.len)) + if(DNA_SNOUT_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.snouts_list.Find(features["snout"]), GLOB.snouts_list.len)) + if(DNA_HORNS_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.horns_list.Find(features["horns"]), GLOB.horns_list.len)) + if(DNA_FRILLS_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.frills_list.Find(features["frills"]), GLOB.frills_list.len)) + if(DNA_SPINES_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.spines_list.Find(features["spines"]), GLOB.spines_list.len)) + if(DNA_EARS_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.ears_list.Find(features["ears"]), GLOB.ears_list.len)) + if(DNA_MOTH_WINGS_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.moth_wings_list.Find(features["moth_wings"]), GLOB.moth_wings_list.len)) + if(DNA_MOTH_ANTENNAE_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.moth_antennae_list.Find(features["moth_antennae"]), GLOB.moth_antennae_list.len)) + if(DNA_MOTH_MARKINGS_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.moth_markings_list.Find(features["moth_markings"]), GLOB.moth_markings_list.len)) + if(DNA_MUSHROOM_CAPS_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.caps_list.Find(features["caps"]), GLOB.caps_list.len)) + if(DNA_SKRELL_HAIR_BLOCK) + set_uni_feature_block(blocknumber, construct_block(GLOB.skrell_hair_list.Find(features["skrell_hair"]), GLOB.skrell_hair_list.len)) diff --git a/modular_galactic/skrell/skrell_organs.dm b/modular_galactic/skrell/skrell_organs.dm index f45d01043131c..e076a01386ec9 100644 --- a/modular_galactic/skrell/skrell_organs.dm +++ b/modular_galactic/skrell/skrell_organs.dm @@ -9,7 +9,7 @@ name = "skrell liver" icon_state = "liver" icon = 'modular_galactic/skrell/skrell_organs.dmi' - alcohol_tolerance = 3 + alcohol_tolerance = 5 toxTolerance = 10 //can shrug off up to 10u of toxins. liver_resistance = 1.2 * LIVER_DEFAULT_TOX_RESISTANCE @@ -18,3 +18,56 @@ #undef LIVER_DEFAULT_TOX_RESISTANCE #undef LIVER_FAILURE_STAGE_SECONDS #undef MAX_TOXIN_LIVER_DAMAGE + +/obj/item/organ/internal/tongue/skrell + name = "internal vocal sacs" + desc = "An Strange looking sac." + icon = 'modular_galactic/skrell/skrell_organs.dmi' + icon_state = "tongue" + taste_sensitivity = 5 + +/obj/item/organ/internal/tongue/skrell/get_possible_languages() + return ..() + /datum/language/skrell + +/obj/item/organ/internal/heart/skrell + name = "skrellian heart" + icon = 'modular_galactic/skrell/skrell_organs.dmi' + icon_state = "heart-on" + +/obj/item/organ/internal/brain/skrell + name = "spongy brain" + icon = 'modular_galactic/skrell/skrell_organs.dmi' + icon_state = "brain2" + +/obj/item/organ/internal/eyes/skrell + name = "amphibian eyes" + desc = "Large black orbs." + icon = 'modular_galactic/skrell/skrell_organs.dmi' + icon_state = "eyes" + flash_protect = FLASH_PROTECTION_SENSITIVE + +/obj/item/organ/internal/lungs/skrell + name = "skrell lungs" + icon = 'modular_galactic/skrell/skrell_organs.dmi' + icon_state = "lungs" + safe_plasma_max = 40 + safe_co2_max = 40 + + cold_message = "You can't stand the freezing cold with every breath you take!" + cold_level_1_threshold = 248 + cold_level_2_threshold = 220 + cold_level_3_threshold = 170 + cold_level_1_damage = COLD_GAS_DAMAGE_LEVEL_2 //Keep in mind with gas damage levels, you can set these to be negative, if you want someone to heal, instead. + cold_level_2_damage = COLD_GAS_DAMAGE_LEVEL_2 + cold_level_3_damage = COLD_GAS_DAMAGE_LEVEL_3 + cold_damage_type = BRUTE + + + hot_message = "You can't stand the searing heat with every breath you take!" + heat_level_1_threshold = 318 + heat_level_2_threshold = 348 + heat_level_3_threshold = 1000 + heat_level_1_damage = HEAT_GAS_DAMAGE_LEVEL_2 + heat_level_2_damage = HEAT_GAS_DAMAGE_LEVEL_2 + heat_level_3_damage = HEAT_GAS_DAMAGE_LEVEL_3 + heat_damage_type = BURN diff --git a/modular_galactic/skrell/skrell_bodyparts.dm b/modular_galactic/skrell/skrell_parts.dm similarity index 100% rename from modular_galactic/skrell/skrell_bodyparts.dm rename to modular_galactic/skrell/skrell_parts.dm diff --git a/modular_galactic/skrell/skrell_accessory.dm b/modular_galactic/skrell/skrell_tail_accessory.dm similarity index 98% rename from modular_galactic/skrell/skrell_accessory.dm rename to modular_galactic/skrell/skrell_tail_accessory.dm index 419ba17c29db3..36c272501f436 100644 --- a/modular_galactic/skrell/skrell_accessory.dm +++ b/modular_galactic/skrell/skrell_tail_accessory.dm @@ -4,6 +4,7 @@ /datum/sprite_accessory/skrell_tail name = "Skrell Male Tentacles" icon = 'modular_galactic/skrell/tails.dmi' + em_block = FALSE /datum/sprite_accessory/skrell_tail/none name = "Bald" diff --git a/modular_galactic/skrell/skrell_accessory_preference.dm b/modular_galactic/skrell/skrell_tail_accessory_preference.dm similarity index 100% rename from modular_galactic/skrell/skrell_accessory_preference.dm rename to modular_galactic/skrell/skrell_tail_accessory_preference.dm diff --git a/modular_galactic/skrell/tails.dmi b/modular_galactic/skrell/tails.dmi index 2678ca59cc021..8529ad3fff1df 100644 Binary files a/modular_galactic/skrell/tails.dmi and b/modular_galactic/skrell/tails.dmi differ diff --git a/tgstation.dme b/tgstation.dme index b94a8be29c834..e5e277c7c613b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -331,6 +331,8 @@ #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_main.dm" #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_silicon.dm" #include "code\__DEFINES\dcs\signals\signals_mob\signals_mob_simple.dm" +#include "code\__DEFINES\modular_galactic\DNA.dm" +#include "code\__DEFINES\modular_galactic\skrell.dm" #include "code\__DEFINES\research\anomalies.dm" #include "code\__DEFINES\research\research_categories.dm" #include "code\__HELPERS\_auxtools_api.dm" @@ -5273,14 +5275,14 @@ #include "interface\menu.dm" #include "interface\stylesheet.dm" #include "interface\skin.dmf" +#include "modular_galactic\skrell\skrell.dm" #include "modular_galactic\skrell\skrell_defines.dm" -#include "modular_galactic\skrell\skrell_accessory.dm" -#include "modular_galactic\skrell\skrell_accessory_preference.dm" -#include "modular_galactic\skrell\skrell_bodyparts.dm" #include "modular_galactic\skrell\skrell_eyes.dm" #include "modular_galactic\skrell\skrell_language.dm" #include "modular_galactic\skrell\skrell_organs.dm" +#include "modular_galactic\skrell\skrell_parts.dm" #include "modular_galactic\skrell\skrell_pocket.dm" +#include "modular_galactic\skrell\skrell_tail_accessory.dm" +#include "modular_galactic\skrell\skrell_tail_accessory_preference.dm" #include "modular_galactic\skrell\skrell_tails.dm" -#include "modular_galactic\skrell\skrell.dm" // END_INCLUDE