diff --git a/code/__DEFINES/~~bubber_defines/dna.dm b/code/__DEFINES/~~bubber_defines/dna.dm index 026e5cdf9a5..9a1d9c10af9 100644 --- a/code/__DEFINES/~~bubber_defines/dna.dm +++ b/code/__DEFINES/~~bubber_defines/dna.dm @@ -1 +1,4 @@ #define SPECIES_PROTEAN "protean" + +#define MUTATION_SOURCE_SPECIES "species" +#define MUTATION_SOURCE_QUIRK "quirk" diff --git a/code/datums/dna.dm b/code/datums/dna.dm index b4c4a23d769..d609ac377ad 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -48,9 +48,11 @@ GLOBAL_LIST_INIT(features_block_lengths, list( * Commonly used by the datum/dna/set_uni_identity_block and datum/dna/get_uni_identity_block procs. */ GLOBAL_LIST_INIT(total_ui_len_by_block, populate_total_ui_len_by_block()) +*/ GLOBAL_LIST_INIT(standard_mutation_sources, list(MUTATION_SOURCE_ACTIVATED, MUTATION_SOURCE_MUTATOR, MUTATION_SOURCE_TIMED_INJECTOR)) +/* /proc/populate_total_ui_len_by_block() . = list() var/total_block_len = 1 @@ -454,6 +456,8 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) set_uni_feature_block(blocknumber, construct_block(SSaccessories.pod_hair_list.Find(features["pod_hair"]), length(SSaccessories.pod_hair_list))) if(DNA_FISH_TAIL_BLOCK) set_uni_feature_block(blocknumber, construct_block(SSaccessories.tails_list_fish.Find(features["fish_tail"]), length(SSaccessories.tails_list_fish))) +*/ +//SKYRAT EDIT REMOVAL END /** * Checks if two DNAs are practically the same by comparing their most defining features diff --git a/code/modules/antagonists/changeling/changeling.dm b/code/modules/antagonists/changeling/changeling.dm index 94e032151b0..7c0e5261d33 100644 --- a/code/modules/antagonists/changeling/changeling.dm +++ b/code/modules/antagonists/changeling/changeling.dm @@ -957,7 +957,7 @@ current_profile = chosen_profile // SKYRAT EDIT START user.visual_only_organs = TRUE - chosen_dna.transfer_identity(user, TRUE) + chosen_dna.copy_dna(user.dna, COPY_DNA_SE|COPY_DNA_SPECIES) user.visual_only_organs = initial(user.visual_only_organs) user.updateappearance(mutcolor_update = TRUE, eyeorgancolor_update = TRUE) user.regenerate_icons() diff --git a/modular_skyrat/master_files/code/datums/mutations/_mutations.dm b/modular_skyrat/master_files/code/datums/mutations/_mutations.dm index c1fcce860df..9c497cdec35 100644 --- a/modular_skyrat/master_files/code/datums/mutations/_mutations.dm +++ b/modular_skyrat/master_files/code/datums/mutations/_mutations.dm @@ -1,3 +1,3 @@ -/datum/mutation/human +/datum/mutation /// Is this mutation disabled(can't be got through the DNA console) var/disabled = FALSE diff --git a/modular_skyrat/master_files/code/datums/mutations/bunny.dm b/modular_skyrat/master_files/code/datums/mutations/bunny.dm index 14791a30637..3d0ee25d6e6 100644 --- a/modular_skyrat/master_files/code/datums/mutations/bunny.dm +++ b/modular_skyrat/master_files/code/datums/mutations/bunny.dm @@ -1,4 +1,4 @@ -/datum/mutation/human/strong_legs +/datum/mutation/strong_legs name = "Strong Legs" desc = "Strengtens the calves of the subject, allowing them to leap across gaps." quality = POSITIVE @@ -8,7 +8,7 @@ power_path = /datum/action/cooldown/mob_cooldown/leap instability = 25 -/datum/mutation/human/strong_legs/setup() +/datum/mutation/strong_legs/setup() . = ..() var/datum/action/cooldown/mob_cooldown/leap/ability = . if(!istype(ability)) // null or invalid @@ -100,4 +100,4 @@ /obj/item/dnainjector/strong_legs name = "\improper DNA injector (Strong Legs)" desc = "Makes you leap like a bunny." - add_mutations = list(/datum/mutation/human/strong_legs) + add_mutations = list(/datum/mutation/strong_legs) diff --git a/modular_skyrat/master_files/code/datums/mutations/chameleon.dm b/modular_skyrat/master_files/code/datums/mutations/chameleon.dm index 7bd88ed3eb2..5b18d246fa2 100644 --- a/modular_skyrat/master_files/code/datums/mutations/chameleon.dm +++ b/modular_skyrat/master_files/code/datums/mutations/chameleon.dm @@ -1,5 +1,5 @@ // toggleable chameleon skin -/datum/mutation/human/chameleon +/datum/mutation/chameleon power_path = /datum/action/cooldown/spell/chameleon_skin_activate /datum/action/cooldown/spell/chameleon_skin_activate diff --git a/modular_skyrat/master_files/code/datums/mutations/hulk.dm b/modular_skyrat/master_files/code/datums/mutations/hulk.dm index 822a36fd4b3..0ee56685356 100644 --- a/modular_skyrat/master_files/code/datums/mutations/hulk.dm +++ b/modular_skyrat/master_files/code/datums/mutations/hulk.dm @@ -1,3 +1,3 @@ -/datum/mutation/human/hulk +/datum/mutation/hulk disabled = TRUE diff --git a/modular_skyrat/master_files/code/datums/mutations/sight.dm b/modular_skyrat/master_files/code/datums/mutations/sight.dm index 6efee3b5d41..25b775f9fb7 100644 --- a/modular_skyrat/master_files/code/datums/mutations/sight.dm +++ b/modular_skyrat/master_files/code/datums/mutations/sight.dm @@ -1,2 +1,2 @@ -/datum/mutation/human/thermal +/datum/mutation/thermal locked = TRUE diff --git a/modular_skyrat/modules/primitive_catgirls/code/species.dm b/modular_skyrat/modules/primitive_catgirls/code/species.dm index eb2b4b392d1..51052eed19f 100644 --- a/modular_skyrat/modules/primitive_catgirls/code/species.dm +++ b/modular_skyrat/modules/primitive_catgirls/code/species.dm @@ -45,20 +45,14 @@ var/mob/living/carbon/human/hearthkin = new_primitive if(!istype(hearthkin)) return - hearthkin.dna.add_mutation(/datum/mutation/human/olfaction, MUT_NORMAL) - hearthkin.dna.activate_mutation(/datum/mutation/human/olfaction) - - // >mfw I take mutadone and my nose clogs - var/datum/mutation/human/olfaction/mutation = locate() in hearthkin.dna.mutations - mutation.mutadone_proof = TRUE - mutation.instability = 0 + hearthkin.dna.add_mutation(/datum/mutation/olfaction, MUTATION_SOURCE_SPECIES) /datum/species/human/felinid/primitive/on_species_loss(mob/living/carbon/former_primitive, datum/species/new_species, pref_load) . = ..() var/mob/living/carbon/human/hearthkin = former_primitive if(!istype(hearthkin)) return - hearthkin.dna.remove_mutation(/datum/mutation/human/olfaction) + hearthkin.dna.remove_mutation(/datum/mutation/olfaction, MUTATION_SOURCE_SPECIES) /datum/species/human/felinid/primitive/prepare_human_for_preview(mob/living/carbon/human/human_for_preview) human_for_preview.hairstyle = "Blunt Bangs Alt" diff --git a/modular_zubbers/code/datums/mutations/visuals_override.dm b/modular_zubbers/code/datums/mutations/visuals_override.dm index 96f424bad76..727ca9017d8 100644 --- a/modular_zubbers/code/datums/mutations/visuals_override.dm +++ b/modular_zubbers/code/datums/mutations/visuals_override.dm @@ -1,12 +1,12 @@ -/datum/mutation/human/adaptation/cold/get_visual_indicator() +/datum/mutation/adaptation/cold/get_visual_indicator() return -/datum/mutation/human/adaptation/heat/get_visual_indicator() +/datum/mutation/adaptation/heat/get_visual_indicator() return -/datum/mutation/human/adaptation/thermal/get_visual_indicator() +/datum/mutation/adaptation/thermal/get_visual_indicator() return -/datum/mutation/human/adaptation/pressure/get_visual_indicator() +/datum/mutation/adaptation/pressure/get_visual_indicator() return //Removes the visual indicators for various types of adaptation. diff --git a/modular_zubbers/code/modules/dna_vault/vault_mutation.dm b/modular_zubbers/code/modules/dna_vault/vault_mutation.dm deleted file mode 100644 index d8773da8634..00000000000 --- a/modular_zubbers/code/modules/dna_vault/vault_mutation.dm +++ /dev/null @@ -1,21 +0,0 @@ -//Adding class = MUT_OTHER to the various DNA Vault genes to avoid them being saveable -/datum/mutation/human/breathless - class = MUT_OTHER - -/datum/mutation/human/quick - class = MUT_OTHER - -/datum/mutation/human/tough - class = MUT_OTHER - -/datum/mutation/human/dextrous - class = MUT_OTHER - -/datum/mutation/human/fire_immunity - class = MUT_OTHER - -/datum/mutation/human/quick_recovery - class = MUT_OTHER - -/datum/mutation/human/plasmocile - class = MUT_OTHER diff --git a/modular_zubbers/code/modules/experisci/experiment/experiments.dm b/modular_zubbers/code/modules/experisci/experiment/experiments.dm index 7c22c901db0..f5eb7cf4a27 100644 --- a/modular_zubbers/code/modules/experisci/experiment/experiments.dm +++ b/modular_zubbers/code/modules/experisci/experiment/experiments.dm @@ -13,7 +13,7 @@ return //check for genetics telepathy - if(check.dna.check_mutation(/datum/mutation/human/telepathy)) + if(check.dna.check_mutation(/datum/mutation/telepathy)) return TRUE //check for shadekin organs diff --git a/modular_zubbers/code/modules/quirks/code/positive_quirks/telepathy.dm b/modular_zubbers/code/modules/quirks/code/positive_quirks/telepathy.dm index ddee44eae25..6b7f69064c9 100644 --- a/modular_zubbers/code/modules/quirks/code/positive_quirks/telepathy.dm +++ b/modular_zubbers/code/modules/quirks/code/positive_quirks/telepathy.dm @@ -1,4 +1,4 @@ -/datum/mutation/human/telepathy +/datum/mutation/telepathy power_path = /datum/action/cooldown/spell/pointed/telepathy /datum/action/cooldown/spell/pointed/telepathy @@ -98,7 +98,7 @@ //different messaging if the target has the telepathy mutation themselves themselves if (ishuman(target)) var/mob/living/carbon/human/human_target = target - var/datum/mutation/human/telepathy/tele_mut = human_target.dna.get_mutation(/datum/mutation/human/telepathy) + var/datum/mutation/telepathy/tele_mut = human_target.dna.get_mutation(/datum/mutation/telepathy) if (tele_mut) to_chat(target, span_boldnotice("[caster]'s psychic presence resounds in your mind: \"[span_purple(message)]\"")) @@ -138,9 +138,7 @@ /datum/quirk/telepathic/add(client/client_source) if (iscarbon(quirk_holder)) var/mob/living/carbon/human/human_holder = quirk_holder - - if(!human_holder.dna.activate_mutation(/datum/mutation/human/telepathy)) - human_holder.dna.add_mutation(/datum/mutation/human/telepathy, MUT_OTHER) + human_holder.dna.add_mutation(/datum/mutation/telepathy, MUTATION_SOURCE_QUIRK) else if(issilicon(quirk_holder)) var/mob/living/silicon/robot_holder = quirk_holder var/datum/action/cooldown/spell/pointed/telepathy/tele_action = new @@ -154,7 +152,7 @@ tele_action_ref = null if(iscarbon(quirk_holder)) var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.dna.remove_mutation(/datum/mutation/human/telepathy) + human_holder.dna.remove_mutation(/datum/mutation/telepathy, MUTATION_SOURCE_QUIRK) else if(issilicon(quirk_holder) && !isnull(tele_action)) QDEL_NULL(tele_action) tele_action_ref = null @@ -167,7 +165,7 @@ /datum/emote/living/telepathy_reply/run_emote(mob/living/user, params, type_override, intentional) if (ishuman(user) && intentional) var/mob/living/carbon/human/human_user = user - var/datum/mutation/human/telepathy/mutation = human_user.dna.get_mutation(/datum/mutation/human/telepathy) + var/datum/mutation/telepathy/mutation = human_user.dna.get_mutation(/datum/mutation/telepathy) if (mutation) var/datum/action/cooldown/spell/pointed/telepathy/tele_action = locate() in user.actions // just straight up call the right-click action as is diff --git a/tgstation.dme b/tgstation.dme index d7ff507291d..08a49d3d4bb 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -9300,7 +9300,6 @@ #include "modular_zubbers\code\modules\designs\limbgrower_designs.dm" #include "modular_zubbers\code\modules\disease\disease_transmission.dm" #include "modular_zubbers\code\modules\disease\hidden.dm" -#include "modular_zubbers\code\modules\dna_vault\vault_mutation.dm" #include "modular_zubbers\code\modules\dynamic\midround_rulesets.dm" #include "modular_zubbers\code\modules\emotes\emotes.dm" #include "modular_zubbers\code\modules\emotes\hand_items.dm"