Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gene-Mod Mutant Colors #108

Merged
merged 9 commits into from
Sep 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions code/__DEFINES/~doppler_defines/is_helpers.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
//Species
#define isprimitive(A) (is_species(A, /datum/species/human/genemod/primitive))
#define isprimitive(A) (is_species(A, /datum/species/genemod/primitive))
//Customization bases
#define isinsectoid(A) (is_species(A, /datum/species/insectoid))
#define issnail(A) (is_species(A, /datum/species/snail))
#define ishemophage(A) (is_species(A, /datum/species/hemophage))
#define ishemophage(A) (is_species(A, /datum/species/genemod/hemophage))
//Species with green blood
#define hasgreenblood(A) (isinsectoid(A) || HAS_TRAIT(A, TRAIT_GREEN_BLOOD))
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions modular_doppler/hearthkin/primitive_genemod/code/objects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
var/being_used = FALSE

/obj/item/anointing_oil/attack(mob/living/target_mob, mob/living/user, params)
if (!is_species(user, /datum/species/human/genemod/primitive))
if (!is_species(user, /datum/species/genemod/primitive))
to_chat(user, span_warning("You have no idea what this disgusting concoction is used for."))
return
if(being_used || !ismob(target_mob)) //originally this was going to check if the mob was friendly, but if an icecat wants to name some terror mob while it's tearing chunks out of them, why not?
Expand Down Expand Up @@ -48,7 +48,7 @@

/obj/item/anointing_oil/examine(mob/user)
. = ..()
if(is_species(user, /datum/species/human/genemod/primitive))
if(is_species(user, /datum/species/genemod/primitive))
. += span_info("Using this on the local wildlife will allow you to give them a name.")

/datum/crafting_recipe/anointing_oil
Expand All @@ -74,7 +74,7 @@
w_class = WEIGHT_CLASS_TINY

/obj/item/frozen_breath/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers)
if (!is_species(user, /datum/species/human/genemod/primitive))
if (!is_species(user, /datum/species/genemod/primitive))
to_chat(user, span_warning("You have no idea how to use this freezing concoction."))
return

Expand All @@ -94,7 +94,7 @@

/obj/item/frozen_breath/examine(mob/user)
. = ..()
if(is_species(user, /datum/species/human/genemod/primitive))
if(is_species(user, /datum/species/genemod/primitive))
. += span_info("Using this on a pair of organic lungs transforms them into hardy lungs. This will remove any other special features from the old lungs, if there were any.")

/datum/crafting_recipe/frozen_breath
Expand Down
4 changes: 2 additions & 2 deletions modular_doppler/hearthkin/primitive_genemod/code/spawner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
prompt_name = "icemoon dweller"
icon = 'icons/mob/simple/lavaland/nest.dmi'
icon_state = "hole"
mob_species = /datum/species/human/genemod/primitive
mob_species = /datum/species/genemod/primitive
outfit = /datum/outfit/primitive_genemod
density = FALSE
you_are_text = "You are an icemoon dweller."
Expand All @@ -20,7 +20,7 @@
/// The team the spawner will assign players to and use to keep track of people that have already used the spawner
var/datum/team/primitive_genemods/team

restricted_species = list(/datum/species/human/genemod/primitive)
restricted_species = list(/datum/species/genemod/primitive)
infinite_use = TRUE
deletes_on_zero_uses_left = FALSE

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,11 @@

/datum/dna/initialize_dna(newblood_type, create_mutation_blocks = TRUE, randomize_features = TRUE)
. = ..()
/// Weirdness Check Zone: kill incorrect tails
/// Weirdness Check Zone
if(randomize_features)
if(istype(species, /datum/species/genemod))
var/skin_tone = pick(GLOB.skin_tones)
features["mcolor"] = skintone2hex(skin_tone) //spoof
if(species.id != /datum/species/human/felinid::id)
features["tail_cat"] = /datum/sprite_accessory/tails/human/none::name
features["ears"] = /datum/sprite_accessory/ears/none::name
Expand Down
Original file line number Diff line number Diff line change
@@ -1,44 +1,44 @@
/mob/living/carbon/human/species/genemod
race = /datum/species/human/genemod
race = /datum/species/genemod

/datum/species/human/genemod
/datum/species/genemod
name = "Gene-Mod"
id = SPECIES_GENEMOD
preview_outfit = /datum/outfit/genemod_preview
examine_limb_id = SPECIES_HUMAN
inherent_traits = list(
TRAIT_ANIMALISTIC,
TRAIT_USES_SKINTONES,
TRAIT_MUTANT_COLORS,
)
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN | SLIME_EXTRACT

/datum/outfit/genemod_preview
name = "Gene-Mod (Species Preview)"
uniform = /obj/item/clothing/under/dress/sundress

/datum/species/human/genemod/get_physical_attributes()
/datum/species/genemod/get_physical_attributes()
return "N/a."

/datum/species/human/genemod/get_species_description()
/datum/species/genemod/get_species_description()
return "N/a."

/datum/species/human/genemod/get_species_lore()
/datum/species/genemod/get_species_lore()
return list(
"N/a.",
)

/datum/species/human/genemod/on_species_gain(mob/living/carbon/human/target, datum/species/old_species, pref_load)
/datum/species/genemod/on_species_gain(mob/living/carbon/human/target, datum/species/old_species, pref_load)
apply_animal_trait(target, find_animal_trait(target))
return ..()

/datum/species/human/genemod/prepare_human_for_preview(mob/living/carbon/human/human_for_preview)
/datum/species/genemod/prepare_human_for_preview(mob/living/carbon/human/human_for_preview)
human_for_preview.dna.ear_type = DOG
human_for_preview.dna.features["ears"] = "Fold"
human_for_preview.dna.features["ears_color_1"] = "#4E3E30"
human_for_preview.dna.features["ears_color_2"] = "#F4B1C8"
human_for_preview.set_haircolor("#3a2d22", update = FALSE)
human_for_preview.set_hairstyle("Short twintails", update = TRUE)
human_for_preview.skin_tone = "mixed3"
human_for_preview.dna.features["mcolor"] = skintone2hex("mixed3")
human_for_preview.eye_color_left = "#442B12"
human_for_preview.eye_color_right = "#442B12"
regenerate_organs(human_for_preview)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,18 @@
#define HEMOPHAGE_SPAWN_TEXT "You are an [span_danger("Hemophage")]. You will slowly but constantly lose blood if outside of a closet-like object. If inside a closet-like object, or in pure darkness, you will slowly heal, at the cost of blood. You may gain more blood by grabbing a live victim and using your drain ability."


/datum/species/hemophage
/datum/species/genemod/hemophage
name = "Hemophage"
id = SPECIES_HEMOPHAGE
preview_outfit = /datum/outfit/hemophage_preview
inherent_traits = list(
TRAIT_ADVANCEDTOOLUSER,
TRAIT_CAN_STRIP,
TRAIT_NOHUNGER,
TRAIT_NOBREATH,
TRAIT_OXYIMMUNE,
TRAIT_VIRUSIMMUNE,
TRAIT_LITERATE,
TRAIT_DRINKS_BLOOD,
TRAIT_USES_SKINTONES,
TRAIT_MUTANT_COLORS,
)
inherent_biotypes = MOB_HUMANOID | MOB_ORGANIC
exotic_bloodtype = "U"
Expand All @@ -27,24 +26,24 @@
examine_limb_id = SPECIES_HUMAN
skinned_type = /obj/item/stack/sheet/animalhide/human

/datum/species/hemophage/check_roundstart_eligible()
/datum/species/genemod/hemophage/check_roundstart_eligible()
if(check_holidays(HALLOWEEN))
return TRUE

return ..()

/datum/species/hemophage/on_species_gain(mob/living/carbon/human/new_hemophage, datum/species/old_species, pref_load)
/datum/species/genemod/hemophage/on_species_gain(mob/living/carbon/human/new_hemophage, datum/species/old_species, pref_load)
. = ..()
to_chat(new_hemophage, HEMOPHAGE_SPAWN_TEXT)
new_hemophage.update_body()

/datum/species/hemophage/get_species_description()
/datum/species/genemod/hemophage/get_species_description()
return "Oftentimes feared or pushed out of society for the predatory nature of their condition, \
Hemophages are typically mixed around various Frontier populations, keeping their true nature hidden while \
reaping both the benefits and easy access to prey, enjoying unpursued existences on the Frontier."


/datum/species/hemophage/get_species_lore()
/datum/species/genemod/hemophage/get_species_lore()
return list(
"Though known by many other names, 'Hemophages' are those that have found themselves the host of a bloodthirsty infection. 'Natural' hemophages have their infection first overtake their body through the bloodstream, though methods vary; \
Hemophages thought to be a dense cluster of tightly related but distinct strains and variants. It will first take root in the chest, making alterations to the cells making up the host's organs to rapidly expand and take them over. \
Expand Down Expand Up @@ -95,14 +94,25 @@
)


/datum/species/hemophage/prepare_human_for_preview(mob/living/carbon/human/human)
human.skin_tone = "albino"
human.hair_color = "#1d1d1d"
human.hairstyle = "Pompadour (Big)"
/datum/outfit/hemophage_preview
name = "Hemophage (Species Preview)"
uniform = /obj/item/clothing/under/suit/black_really/skirt

/datum/species/genemod/hemophage/prepare_human_for_preview(mob/living/carbon/human/human)
human.dna.features["mcolor"] = skintone2hex("albino")
human.dna.features["horns"] = "Lifted"
human.dna.features["horns_color_1"] = "#52435e"
human.dna.ear_type = HUMANOID
human.dna.features["ears"] = "Elf (wide)"
human.dna.features["ears_color_1"] = "#F7D1C3"
human.hair_color = "#f1cc9c"
human.lip_style = "lipstick"
human.lip_color = COLOR_BLACK
human.hairstyle = "Long Gloomy Bangs"
regenerate_organs(human, src, visual_only = TRUE)
human.update_body(TRUE)

/datum/species/hemophage/create_pref_unique_perks()
/datum/species/genemod/hemophage/create_pref_unique_perks()
var/list/to_add = list()

to_add += list(
Expand Down Expand Up @@ -145,7 +155,7 @@
return to_add


/datum/species/hemophage/create_pref_blood_perks()
/datum/species/genemod/hemophage/create_pref_blood_perks()
var/list/to_add = list()

to_add += list(list(
Expand All @@ -161,12 +171,12 @@

return to_add

/datum/species/hemophage/get_cry_sound(mob/living/carbon/human/hemophage)
/datum/species/genemod/hemophage/get_cry_sound(mob/living/carbon/human/hemophage)
var/datum/species/human/human_species = GLOB.species_prototypes[/datum/species/human]
return human_species.get_cry_sound(hemophage)

// We don't need to mention that they're undead, as the perks that come from it are otherwise already explicited, and they might no longer be actually undead from a gameplay perspective, eventually.
/datum/species/hemophage/create_pref_biotypes_perks()
/datum/species/genemod/hemophage/create_pref_biotypes_perks()
return


Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/mob/living/carbon/human/species/genemod/primitive
race = /datum/species/human/genemod/primitive
race = /datum/species/genemod/primitive

/datum/language_holder/primitive_genemod
understood_languages = list(
Expand All @@ -12,8 +12,8 @@
)
selected_language = /datum/language/primitive_genemod

/datum/species/human/genemod/primitive
name = "Primitive Gene-Mod"
/datum/species/genemod/primitive
name = "Hearthkin"
id = SPECIES_GENEMOD_PRIMITIVE
preview_outfit = /datum/outfit/genemod_primitive_preview

Expand All @@ -31,7 +31,7 @@
TRAIT_ANIMALISTIC,
TRAIT_VIRUSIMMUNE,
TRAIT_RESISTCOLD,
TRAIT_USES_SKINTONES,
TRAIT_MUTANT_COLORS,
)

/datum/outfit/genemod_primitive_preview
Expand All @@ -40,7 +40,7 @@
neck = /obj/item/clothing/neck/scarf/primitive_genemod_scarf
back = /obj/item/forging/reagent_weapon/axe/fake_copper

/datum/species/human/genemod/primitive/on_species_gain(mob/living/carbon/new_primitive, datum/species/old_species, pref_load)
/datum/species/genemod/primitive/on_species_gain(mob/living/carbon/new_primitive, datum/species/old_species, pref_load)
. = ..()
var/mob/living/carbon/human/hearthkin = new_primitive
if(!istype(hearthkin))
Expand All @@ -53,36 +53,36 @@
mutation.mutadone_proof = TRUE
mutation.instability = 0

/datum/species/human/genemod/primitive/on_species_loss(mob/living/carbon/former_primitive, datum/species/new_species, pref_load)
/datum/species/genemod/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)

/datum/species/human/genemod/primitive/prepare_human_for_preview(mob/living/carbon/human/human_for_preview)
/datum/species/genemod/primitive/prepare_human_for_preview(mob/living/carbon/human/human_for_preview)
human_for_preview.dna.ear_type = CAT
human_for_preview.dna.features["ears"] = "Coeurl"
human_for_preview.dna.features["ears_color_1"] = "#e9eff5"
human_for_preview.dna.features["ears_color_2"] = "#f5afaf"
human_for_preview.dna.features["ears_color_3"] = "#222222"
human_for_preview.set_haircolor("#E9EFF5", update = FALSE)
human_for_preview.set_hairstyle("Fluffy long", update = TRUE)
human_for_preview.skin_tone = "albino"
human_for_preview.dna.features["mcolor"] = skintone2hex("albino")
human_for_preview.eye_color_left = "#96dbe7"
human_for_preview.eye_color_right = "#96dbe7"
regenerate_organs(human_for_preview)
human_for_preview.update_body(is_creating = TRUE)

/datum/species/human/genemod/primitive/get_species_description()
/datum/species/genemod/primitive/get_species_description()
return list(
"Genetically modified humanoids believed to be descendants of a now centuries old colony \
ship from the pre-bluespace travel era. Still having at least some human traits, they \
are most comparable to today's felinids with most sporting features likely spliced from \
the icemoon's many fauna."
)

/datum/species/human/genemod/primitive/get_species_lore()
/datum/species/genemod/primitive/get_species_lore()
return list(
"The Hearthkin are a culture of disparate Scandinavian groups all sharing a common origin \
as descendents from demihuman genemodders aboard the good ship Stjarndrakkr, or Star Dragon; \
Expand Down
8 changes: 4 additions & 4 deletions modular_doppler/reagent_forging/code/forge.dm
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@

. += span_notice("<br>[src] is currently [forge_temperature] degrees hot, going towards [target_temperature] degrees.<br>")

if(reagent_forging && (is_species(user, /datum/species/lizard/ashwalker) || is_species(user, /datum/species/human/genemod/primitive)))
if(reagent_forging && (is_species(user, /datum/species/lizard/ashwalker) || is_species(user, /datum/species/genemod/primitive)))
. += span_warning("[src] has a fine gold trim, it is ready to imbue chemicals into reagent objects.")

return .
Expand Down Expand Up @@ -408,7 +408,7 @@

if(SKILL_LEVEL_LEGENDARY)
if(!forced)
if(is_species(user, /datum/species/lizard/ashwalker) || is_species(user, /datum/species/human/genemod/primitive))
if(is_species(user, /datum/species/lizard/ashwalker) || is_species(user, /datum/species/genemod/primitive))
to_chat(user, span_notice("With just the right heat treating technique, metal could be made to accept reagents..."))
create_reagent_forge()
if(forge_level == FORGE_LEVEL_MASTER)
Expand Down Expand Up @@ -573,7 +573,7 @@
return

var/mob/living/carbon/human/human_user = user
if(!is_species(human_user, /datum/species/lizard/ashwalker) && !is_species(human_user, /datum/species/human/genemod/primitive))
if(!is_species(human_user, /datum/species/lizard/ashwalker) && !is_species(human_user, /datum/species/genemod/primitive))
to_chat(user, span_danger("It is impossible for you to imbue!")) //maybe remove (ashwalkers & icecats only) after some time
return

Expand Down Expand Up @@ -623,7 +623,7 @@
return

var/mob/living/carbon/human/human_user = user
if(!is_species(human_user, /datum/species/lizard/ashwalker) && !is_species(human_user, /datum/species/human/genemod/primitive))
if(!is_species(human_user, /datum/species/lizard/ashwalker) && !is_species(human_user, /datum/species/genemod/primitive))
to_chat(user, span_danger("It is impossible for you to imbue!")) //maybe remove (ashwalkers & icecats only) after some time
return

Expand Down
Loading