Skip to content

Commit

Permalink
Доработка особенностей и ДНК
Browse files Browse the repository at this point in the history
  • Loading branch information
Nlaysi committed May 26, 2024
1 parent 3f99caa commit 6f8b6e1
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 2 deletions.
2 changes: 1 addition & 1 deletion modular_bandastation/species/_species.dme
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

#include "code/_defines.dm"
#include "code/language.dm"
// #include "code/dna.dm"
#include "code/dna.dm"

#include "code/human/carbon.dm"
#include "code/human/human.dm"
Expand Down
25 changes: 25 additions & 0 deletions modular_bandastation/species/code/dna.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,28 @@
dna.features["tail_markings"] = SSaccessories.vulpkanin_tail_markings_list[deconstruct_block(get_uni_feature_block(dna.unique_features, DNA_VULPKANIN_TAIL_MARKINGS), SSaccessories.vulpkanin_tail_markings_list.len)]
if(dna.features["vulpkanin_facial_hair"])
dna.features["vulpkanin_facial_hair"] = SSaccessories.vulpkanin_facial_hair_list[deconstruct_block(get_uni_feature_block(dna.unique_features, DNA_VULPKANIN_FACIAL_HAIR), SSaccessories.vulpkanin_facial_hair_list.len)]

/proc/populate_total_uf_len_by_block_modular(last)
. = list()
var/total_block_len = last
for(var/blocknumber in 1 to DNA_MODULAR_BLOCKS_COUNT)
total_block_len += DNA_BLOCK_SIZE
. += total_block_len

/scramble_dna(mob/living/carbon/M, ui=FALSE, se=FALSE, uf=FALSE, probability)

Check failure on line 58 in modular_bandastation/species/code/dna.dm

View workflow job for this annotation

GitHub Actions / Run Linters

OD2303: Global procs cannot be overridden - 'scramble_dna' override will be ignored
if(uf)
for(var/blocknum in DNA_FEATURE_BLOCKS to DNA_FEATURE_BLOCKS + DNA_MODULAR_BLOCKS_COUNT)
if(prob(probability))
M.dna.set_uni_feature_block(blocknum, random_string(GET_UF_BLOCK_LEN(blocknum), GLOB.hex_characters))
..()

/mob/living/carbon/human/species/vulpkanin/random_mutate_unique_features()
if(!has_dna())
CRASH("[src] does not have DNA")
var/num = rand(1, DNA_FEATURE_BLOCKS + DNA_MODULAR_BLOCKS_COUNT)
dna.set_uni_feature_block(num, random_string(GET_UF_BLOCK_LEN(num), GLOB.hex_characters))
updateappearance(mutcolor_update = TRUE, mutations_overlay_update = TRUE)

/world/New()
. = ..()
GLOB.total_uf_len_by_block += populate_total_uf_len_by_block_modular(GLOB.total_uf_len_by_block[DNA_FEATURE_BLOCKS])
21 changes: 21 additions & 0 deletions modular_bandastation/species/code/human/species_type/vulpkanin.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
mutantheart = /obj/item/organ/internal/heart/vulpkanin
mutantlungs = /obj/item/organ/internal/lungs/vulpkanin
mutanteyes = /obj/item/organ/internal/eyes/vulpkanin
mutantears = /obj/item/organ/internal/ears/vulpkanin
mutanttongue = /obj/item/organ/internal/tongue/vulpkanin
mutantliver = /obj/item/organ/internal/liver/vulpkanin
mutantstomach = /obj/item/organ/internal/stomach/vulpkanin
Expand Down Expand Up @@ -93,6 +94,26 @@
Что касается беженцев, то они не особо проявляют активность, например, на политическом поприще.",
)

/datum/species/vulpkanin/create_pref_unique_perks()
var/list/to_add = list()

to_add += list(
list(
SPECIES_PERK_TYPE = SPECIES_NEUTRAL_PERK,
SPECIES_PERK_ICON = "assistive-listening-systems",
SPECIES_PERK_NAME = "Чувствительный слух",
SPECIES_PERK_DESC = "Вульпкане лучше слышат, но более чувствительны к громким звукам, например, светошумовым гранатам.",
),
list(
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
SPECIES_PERK_ICON = "fire-alt",
SPECIES_PERK_NAME = "Быстрый метаболизм",
SPECIES_PERK_DESC = "Вульпкане быстрее тратят полезные вещества и проголадываются",
),
)

return to_add

/datum/species/vulpkanin/handle_mutant_bodyparts(mob/living/carbon/human/source, forced_colour)
var/list/bodyparts_to_add = mutant_bodyparts.Copy()
var/list/relevent_layers = list(BODY_BEHIND_LAYER, BODY_ADJ_LAYER, BODY_FRONT_LAYER)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
modifies_speech = FALSE
languages_native = list(/datum/language/canilunzt)
liked_foodtypes = RAW | MEAT | SEAFOOD
disliked_foodtypes = VEGETABLES | GRAIN | FRUIT | JUNKFOOD | GORE
disliked_foodtypes = DAIRY | NUTS | GROSS
toxic_foodtypes = GRAIN | SUGAR | TOXIC

/obj/item/organ/internal/tongue/vulpkanin/get_possible_languages()
return ..() + /datum/language/canilunzt
Expand All @@ -23,6 +24,18 @@
name = "vulpkanin eyeballs"
icon = 'modular_bandastation/species/icons/mob/species/vulpkanin/organs.dmi'

/obj/item/organ/internal/ears/vulpkanin
desc = "Большие ушки позволяют легче слышать шепот"
damage_multiplier = 2

/obj/item/organ/internal/ears/vulpkanin/on_mob_insert(mob/living/carbon/ear_owner)
. = ..()
ADD_TRAIT(ear_owner, TRAIT_GOOD_HEARING, ORGAN_TRAIT)

/obj/item/organ/internal/ears/vulpkanin/on_mob_remove(mob/living/carbon/ear_owner)
. = ..()
REMOVE_TRAIT(ear_owner, TRAIT_GOOD_HEARING, ORGAN_TRAIT)

/obj/item/organ/internal/heart/vulpkanin
name = "vulpkanin heart"
icon = 'modular_bandastation/species/icons/mob/species/vulpkanin/organs.dmi'
Expand Down

0 comments on commit 6f8b6e1

Please sign in to comment.