Skip to content

Commit

Permalink
feat: (Wet)Skrells (#74)
Browse files Browse the repository at this point in the history
## About The Pull Request
Добавляем скреллов на тг
## Why It's Good For The Game
Скреллы обладают карманом(способен вмещать small предметы), кровью из
меди, повышенной сопротивляемостью к теплу и наоборот пониженной к
холоду.
Да черт возьми это все таки скреллы! 

![image](https://user-images.githubusercontent.com/77164962/221412858-5e11651d-437b-49f7-b0ec-a489e14e8c4d.png)

![image](https://user-images.githubusercontent.com/77164962/221412949-dc9a9ca4-cf5d-4abc-9b6e-027e6297d120.png)
## Changelog
:cl:
add: Раса Скреллов, органы, язык, хвосты(прическа), карман.
config: Скреллы добавлены в список доступных в редакторе рас.
/:cl:
  • Loading branch information
valldemar2017 authored and Bizzonium committed Mar 28, 2023
1 parent 86f3509 commit 0e1b6a0
Show file tree
Hide file tree
Showing 19 changed files with 631 additions and 0 deletions.
1 change: 1 addition & 0 deletions code/__HELPERS/global_lists.dm
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_antennae, GLOB.moth_antennae_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_markings, GLOB.moth_markings_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/pod_hair, GLOB.pod_hair_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/skrell_tail,GLOB.skrell_hair_list)

//Species
for(var/spath in subtypesof(/datum/species))
Expand Down
3 changes: 3 additions & 0 deletions code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_markings, GLOB.moth_markings_list)
if(!GLOB.pod_hair_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/pod_hair, GLOB.pod_hair_list)
if(!GLOB.skrell_hair_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/skrell_tail,GLOB.skrell_hair_list)

//For now we will always return none for tail_human and ears. | "For now" he says.
return(list(
Expand All @@ -110,6 +112,7 @@
"moth_markings" = pick(GLOB.moth_markings_list),
"tail_monkey" = "None",
"pod_hair" = pick(GLOB.pod_hair_list),
"skrell_hair" = pick(GLOB.skrell_hair_list)
))

/proc/random_hairstyle(gender)
Expand Down
1 change: 1 addition & 0 deletions config/game_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -346,6 +346,7 @@ ROUNDSTART_RACES lizard
ROUNDSTART_RACES moth
ROUNDSTART_RACES plasmaman
#ROUNDSTART_RACES shadow
ROUNDSTART_RACES skrell

## Races that are better than humans in some ways, but worse in others
ROUNDSTART_RACES ethereal
Expand Down
Binary file added modular_galactic/skrell/bodyparts.dmi
Binary file not shown.
104 changes: 104 additions & 0 deletions modular_galactic/skrell/skrell.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
///////////////////////////////////////////////////
//Skrell species, organs and human species define//
///////////////////////////////////////////////////


/datum/species/skrell
name = "Skrell"
plural_form = "Skrells"
id = SPECIES_SKRELL
species_traits = list(
EYECOLOR,
MUTCOLORS,
LIPS,
)
coldmod = 1.25
heatmod = 0.75
brutemod = 1.20
burnmod = 0.80
bodytemp_normal = (BODYTEMP_NORMAL + 70)
bodytemp_heat_damage_limit = FIRE_MINIMUM_TEMPERATURE_TO_SPREAD
bodytemp_cold_damage_limit = (T20C - 10)
species_language_holder = /datum/language_holder/skrell
toxic_food = DAIRY | MEAT
disliked_food = RAW | CLOTH
liked_food = TOXIC | FRUIT | VEGETABLES
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
exotic_blood = /datum/reagent/copper
payday_modifier = 0.75
mutantbrain = /obj/item/organ/internal/brain/skrell
mutanteyes = /obj/item/organ/internal/eyes/skrell
mutantlungs = /obj/item/organ/internal/lungs/skrell
mutantheart = /obj/item/organ/internal/heart/skrell
mutantliver = /obj/item/organ/internal/liver/skrell
mutanttongue = /obj/item/organ/internal/tongue/skrell
external_organs = list(
/obj/item/organ/external/skrell = "Screll Tentacles Short",
)
bodypart_overrides = list(
BODY_ZONE_HEAD = /obj/item/bodypart/head/skrell,
BODY_ZONE_CHEST = /obj/item/bodypart/chest/skrell,
BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/skrell,
BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/skrell,
BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/skrell,
BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/skrell,
)

/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
Binary file added modular_galactic/skrell/skrell.dmi
Binary file not shown.
59 changes: 59 additions & 0 deletions modular_galactic/skrell/skrell_accessory.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
////////////////////////////////////////////////////
// Skrell accessory defines //
////////////////////////////////////////////////////
/datum/sprite_accessory/skrell_tail
name = "Skrell Male Tentacles"
icon = 'modular_galactic/skrell/tails.dmi'

/datum/sprite_accessory/skrell_tail/none
name = "Bald"
icon_state = "none"

/datum/sprite_accessory/skrell_tail/long
name = "Skrell Tentacles Long"
icon_state = "long"


/datum/sprite_accessory/skrell_tail/very_short
name = "Skrell Tentacles Very Short"
icon_state = "veryshort"

/datum/sprite_accessory/skrell_tail/mid
name = "Skrell Tentacles Middle"
icon_state = "middle"

/datum/sprite_accessory/skrell_tail/mid_alt
name = "Skrell Tentacles Middle Alt"
icon_state = "middle2"

/datum/sprite_accessory/skrell_tail/wavy
name = "Screll Tentacles Wavy"
icon_state = "wavy"

/datum/sprite_accessory/skrell_tail/wavy_alt
name = "Screll Tentacles Wavy Alt"
icon_state = "wavy2"

/datum/sprite_accessory/skrell_tail/pulled_back
name = "Screll Tentacles Pulled Back"
icon_state = "pulledback"

/datum/sprite_accessory/skrell_tail/pulled_back_alt
name = "Screll Tentacles Pulled Back Alt"
icon_state = "pulledback2"

/datum/sprite_accessory/skrell_tail/very_long
name = "Screll Tentacles Very Long"
icon_state = "verylong"

/datum/sprite_accessory/skrell_tail/overeye
name = "Screll Tentacles Overeye"
icon_state = "overeye"

/datum/sprite_accessory/skrell_tail/overeye_alt
name = "Screll Tentacles Overeye Alt"
icon_state = "overeye2"

/datum/sprite_accessory/skrell_tail/flip_flap
name = "Screll Tentacles Flip Flap"
icon_state = "flipflap"
34 changes: 34 additions & 0 deletions modular_galactic/skrell/skrell_accessory_preference.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/datum/preference/choiced/skrell_hair
savefile_key = "feature_skrell_hair"
savefile_identifier = PREFERENCE_CHARACTER
category = PREFERENCE_CATEGORY_FEATURES
main_feature_name = "Hairstyle"
should_generate_icons = TRUE

/datum/preference/choiced/skrell_hair/init_possible_values()
var/list/values = list()
var/icon/skrell_head = icon('modular_galactic/skrell/bodyparts.dmi', "skrell_head_m")

for (var/tentacle in GLOB.skrell_hair_list)
var/datum/sprite_accessory/skrell_hair = GLOB.skrell_hair_list[tentacle]
if(skrell_hair.locked)
continue

var/icon/icon_with_hair = new(skrell_head)
var/icon/icon_adj = icon(skrell_hair.icon, "m_skrell_hair_[skrell_hair.icon_state]_ADJ")
var/icon/icon_front = icon(skrell_hair.icon, "m_skrell_hair_[skrell_hair.icon_state]_FRONT")
icon_adj.Blend(icon_front, ICON_OVERLAY)
icon_with_hair.Blend(icon_adj, ICON_OVERLAY)
icon_with_hair.Scale(64, 64)
icon_with_hair.Crop(15, 64, 15 + 31, 64 - 31)
icon_with_hair.Blend(COLOR_RED, ICON_MULTIPLY)

values[skrell_hair.name] = icon_with_hair

return values

/datum/preference/choiced/skrell_hair/create_default_value()
return pick(assoc_to_keys_features(GLOB.skrell_hair_list))

/datum/preference/choiced/skrell_hair/apply_to_human(mob/living/carbon/human/target, value)
target.dna.features["skrell_hair"] = value
49 changes: 49 additions & 0 deletions modular_galactic/skrell/skrell_bodyparts.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
////////////////////////////////////////////////////
// Skrell bodyparts defines //
////////////////////////////////////////////////////


/obj/item/bodypart/head/skrell
icon_greyscale = 'modular_galactic/skrell/bodyparts.dmi'
biological_state = BIO_FLESH_BONE
limb_id = SPECIES_SKRELL
is_dimorphic = TRUE
should_draw_greyscale = TRUE
dmg_overlay_type = null

/obj/item/bodypart/chest/skrell
icon_greyscale = 'modular_galactic/skrell/bodyparts.dmi'
biological_state = BIO_FLESH_BONE
limb_id = SPECIES_SKRELL
is_dimorphic = TRUE
should_draw_greyscale = TRUE
dmg_overlay_type = null

/obj/item/bodypart/arm/left/skrell
icon_greyscale = 'modular_galactic/skrell/bodyparts.dmi'
biological_state = BIO_FLESH_BONE
limb_id = SPECIES_SKRELL
should_draw_greyscale = TRUE
dmg_overlay_type = null


/obj/item/bodypart/arm/right/skrell
icon_greyscale = 'modular_galactic/skrell/bodyparts.dmi'
biological_state = BIO_FLESH_BONE
limb_id = SPECIES_SKRELL
should_draw_greyscale = TRUE
dmg_overlay_type = null

/obj/item/bodypart/leg/left/skrell
icon_greyscale = 'modular_galactic/skrell/bodyparts.dmi'
biological_state = BIO_FLESH_BONE
limb_id = SPECIES_SKRELL
should_draw_greyscale = TRUE
dmg_overlay_type = null

/obj/item/bodypart/leg/right/skrell
icon_greyscale = 'modular_galactic/skrell/bodyparts.dmi'
biological_state = BIO_FLESH_BONE
limb_id = SPECIES_SKRELL
should_draw_greyscale = TRUE
dmg_overlay_type = null
Loading

0 comments on commit 0e1b6a0

Please sign in to comment.