Skip to content

Commit

Permalink
[Semi-modular] Gives Xeno-hybrids some xeno-organs in trade for high …
Browse files Browse the repository at this point in the history
…temperature weakness (#1427)

* [Semi-modular] Gives Xeno-hybrids some xeno-organs in trade for

* adds some comments

* reviews

ty!

Co-authored-by: lila <[email protected]>
  • Loading branch information
Steals-The-PRs and carpotoxin authored Jan 4, 2024
1 parent 05b3ac2 commit 60f16ba
Show file tree
Hide file tree
Showing 2 changed files with 92 additions and 2 deletions.
6 changes: 5 additions & 1 deletion code/modules/mob/living/carbon/alien/adult/alien_powers.dm
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,11 @@ Doesn't work on other aliens/AI.*/
span_notice("[owner] vomits up a thick purple substance and begins to shape it."),
span_notice("You shape a [choice] out of resin."),
)

//NOVA EDIT START - Roundstart xenohybrid organs
if(build_duration && !do_after(owner, build_duration))
owner.balloon_alert(owner, "interrupted!")
return
//NOVA EDIT END
new choice_path(owner.loc)
return TRUE

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,25 @@
// A cloning mistake, crossing human and xenomorph DNA
name = "Xenomorph Hybrid"
id = SPECIES_XENO
family_heirlooms = list(/obj/item/toy/plush/rouny, /obj/item/toy/toy_xeno)
family_heirlooms = list(/obj/item/toy/plush/rouny, /obj/item/clothing/mask/facehugger/toy)
inherent_traits = list(
TRAIT_ADVANCEDTOOLUSER,
TRAIT_CAN_STRIP,
TRAIT_LITERATE,
TRAIT_MUTANT_COLORS,
)
inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID
mutantbrain = /obj/item/organ/internal/brain/xeno_hybrid
mutanttongue = /obj/item/organ/internal/tongue/xeno_hybrid
mutantliver = /obj/item/organ/internal/liver/xeno_hybrid
mutantstomach = /obj/item/organ/internal/stomach/xeno_hybrid
mutant_organs = list(
/obj/item/organ/internal/alien/plasmavessel/roundstart,
/obj/item/organ/internal/alien/resinspinner/roundstart,
/obj/item/organ/internal/alien/hivenode,
)
exotic_blood = /datum/reagent/toxin/acid
heatmod = 2.5
mutant_bodyparts = list()
external_organs = list()
payday_modifier = 1.0
Expand Down Expand Up @@ -42,6 +52,25 @@
/datum/species/xeno/get_species_lore()
return list(placeholder_lore)

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

to_add += list(list(
SPECIES_PERK_TYPE = SPECIES_POSITIVE_PERK,
SPECIES_PERK_ICON = "biohazard",
SPECIES_PERK_NAME = "Xenomorphic Biology",
SPECIES_PERK_DESC = "Xeno-hybrids inherit organs from their primal ascendants."
))

to_add += list(list(
SPECIES_PERK_TYPE = SPECIES_NEGATIVE_PERK,
SPECIES_PERK_ICON = "fire",
SPECIES_PERK_NAME = "High Temperature Weakness",
SPECIES_PERK_DESC = "A partial silicone structure and acid blood make the xeno-hybrid species extremely weak to heat."
))

return to_add

/datum/species/xeno/prepare_human_for_preview(mob/living/carbon/human/xeno)
var/xeno_color = "#525288"
xeno.dna.features["mcolor"] = xeno_color
Expand All @@ -52,3 +81,60 @@
xeno.dna.mutant_bodyparts["xenohead"] = list(MUTANT_INDEX_NAME = "Standard", MUTANT_INDEX_COLOR_LIST = list(xeno_color, xeno_color, xeno_color))
regenerate_organs(xeno, src, visual_only = TRUE)
xeno.update_body(TRUE)

///Xenomorph organs modified to suit roundstart styling
#define BUILD_DURATION 0.5 SECONDS

//Plasma vessel
/obj/item/organ/internal/alien/plasmavessel/roundstart
stored_plasma = 55
max_plasma = 55
plasma_rate = 2
heal_rate = 0
actions_types = list(
/datum/action/cooldown/alien/make_structure/plant_weeds/roundstart,
/datum/action/cooldown/alien/transfer,
)

/datum/action/cooldown/alien/make_structure/plant_weeds
var/build_duration = 0 SECONDS //regular aliens can build instantly

/datum/action/cooldown/alien/make_structure/plant_weeds/roundstart
build_duration = BUILD_DURATION //hybrids are a bit slower

/datum/action/cooldown/alien/make_structure/plant_weeds/Activate(atom/target)
if(build_duration && !do_after(owner, build_duration))
owner.balloon_alert(owner, "interrupted!")
return
return ..()

//Resin spinner
/obj/item/organ/internal/alien/resinspinner/roundstart
actions_types = list(/datum/action/cooldown/alien/make_structure/resin/roundstart)

/datum/action/cooldown/alien/make_structure/resin
var/build_duration = 0 SECONDS

/datum/action/cooldown/alien/make_structure/resin/roundstart
build_duration = BUILD_DURATION
//Non-modularly checked in `code\modules\mob\living\carbon\alien\adult\alien_powers.dm`

//Organ resprites
/obj/item/organ/internal/brain/xeno_hybrid
icon_state = "brain-x" //rebranding

/obj/item/organ/internal/stomach/xeno_hybrid
icon_state = "stomach-x"

/obj/item/organ/internal/liver/xeno_hybrid
icon_state = "liver-x"

//Liver modification (xenohybrids can process plasma!)
/obj/item/organ/internal/liver/xeno_hybrid/handle_chemical(mob/living/carbon/owner, datum/reagent/toxin/chem, seconds_per_tick, times_fired)
. = ..()
if(. & COMSIG_MOB_STOP_REAGENT_CHECK)
return
if(chem.type == /datum/reagent/toxin/plasma)
chem.toxpwr = 0

#undef BUILD_DURATION

0 comments on commit 60f16ba

Please sign in to comment.