mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-17 10:05:27 +01:00
Merge pull request #2544 from Cameron653/PR_IN_WHICH_XENOCHIMERA_CAN_CHOOSE_THE_CUSTOM_SPECIES_ICON_THEY_WISH_TO_HAVE_SO_THEY_AREN'T_STUCK_AS_A_TAJARAN_FOR_THE_REST_OF_TIME
Allows xenochimeras to choose icon base
This commit is contained in:
@@ -73,7 +73,7 @@
|
||||
if(!(path in negative_traits))
|
||||
pref.neg_traits -= path
|
||||
|
||||
if(!pref.custom_base || !(pref.custom_base in playable_species - whitelisted_species))
|
||||
if(!pref.custom_base || (pref.custom_base != "Xenochimera" && !(pref.custom_base in playable_species - whitelisted_species)))
|
||||
pref.custom_base = "Human"
|
||||
|
||||
/datum/category_item/player_setup_item/vore/traits/copy_to_mob(var/mob/living/carbon/human/character)
|
||||
@@ -86,8 +86,15 @@
|
||||
//Any additional non-trait settings can be applied here
|
||||
new_CS.blood_color = pref.blood_color
|
||||
|
||||
if(pref.species == "Xenochimera")
|
||||
var/datum/species/xenochimera/CS = character.species
|
||||
var/S = pref.custom_base ? pref.custom_base : "Human"
|
||||
var/datum/species/xenochimera/new_CS = CS.produceCopy(S, pref.pos_traits + pref.neu_traits + pref.neg_traits, character)
|
||||
|
||||
//Any additional non-trait settings can be applied here
|
||||
new_CS.blood_color = pref.blood_color
|
||||
|
||||
/datum/category_item/player_setup_item/vore/traits/content(var/mob/user)
|
||||
//if(pref.species == "Custom Species" || pref.custom_species) //People that want to use a certain species to have that species traits (xenochimera/promethean/spider) should be able to set their custom species.
|
||||
. += "<b>Custom Species</b> "
|
||||
. += "<a href='?src=\ref[src];custom_species=1'>[pref.custom_species ? pref.custom_species : "-Input Name-"]</a><br>"
|
||||
|
||||
@@ -95,6 +102,12 @@
|
||||
. += "<b>Icon Base: </b> "
|
||||
. += "<a href='?src=\ref[src];custom_base=1'>[pref.custom_base ? pref.custom_base : "Human"]</a><br>"
|
||||
|
||||
if(pref.species == "Xenochimera")
|
||||
. += "<b>Icon Base: </b> "
|
||||
. += "<a href='?src=\ref[src];custom_base_xenochimera=1'>[pref.custom_base ? pref.custom_base : "Human"]</a><br>"
|
||||
|
||||
if(pref.species == "Custom Species")
|
||||
|
||||
var/points_left = pref.starting_trait_points
|
||||
var/traits_left = pref.max_traits
|
||||
for(var/T in pref.pos_traits + pref.neg_traits)
|
||||
@@ -153,6 +166,12 @@
|
||||
pref.custom_base = text_choice
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["custom_base_xenochimera"])
|
||||
var/text_choice = input("Pick an icon set for your species:","Icon Base") in playable_species - whitelisted_species - "Custom Species" - "Promethean" + "Xenochimera"
|
||||
if(text_choice in playable_species)
|
||||
pref.custom_base = text_choice
|
||||
return TOPIC_REFRESH_UPDATE_PREVIEW
|
||||
|
||||
else if(href_list["blood_color"])
|
||||
var/color_choice = input("Pick a blood color (does not apply to synths)","Blood Color",pref.blood_color) as color
|
||||
if(color_choice)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
brute_mod = 0.8 //About as tanky to brute as a Unathi. They'll probably snap and go feral when hurt though.
|
||||
burn_mod = 1.15 //As vulnerable to burn as a Tajara.
|
||||
can_fly = 1 //They have wings by default.
|
||||
var/base_species = "Xenochimera"
|
||||
|
||||
num_alternate_languages = 2
|
||||
secondary_langs = list("Sol Common")
|
||||
@@ -194,6 +195,52 @@
|
||||
H.shock_stage = min(H.shock_stage + coldshock, 160) //cold hurts and gives them pain messages, eventually weakening and paralysing, but doesn't damage or trigger feral.
|
||||
return
|
||||
|
||||
/datum/species/xenochimera/proc/produceCopy(var/datum/species/to_copy,var/list/traits,var/mob/living/carbon/human/H)
|
||||
ASSERT(to_copy)
|
||||
ASSERT(istype(H))
|
||||
|
||||
if(ispath(to_copy))
|
||||
to_copy = "[initial(to_copy.name)]"
|
||||
if(istext(to_copy))
|
||||
to_copy = all_species[to_copy]
|
||||
|
||||
var/datum/species/xenochimera/new_copy = new()
|
||||
|
||||
//Initials so it works with a simple path passed, or an instance
|
||||
new_copy.base_species = to_copy.name
|
||||
new_copy.icobase = to_copy.icobase
|
||||
new_copy.deform = to_copy.deform
|
||||
new_copy.tail = to_copy.tail
|
||||
new_copy.tail_animation = to_copy.tail_animation
|
||||
new_copy.icobase_tail = to_copy.icobase_tail
|
||||
new_copy.color_mult = to_copy.color_mult
|
||||
new_copy.primitive_form = to_copy.primitive_form
|
||||
new_copy.appearance_flags = to_copy.appearance_flags
|
||||
new_copy.flesh_color = to_copy.flesh_color
|
||||
new_copy.base_color = to_copy.base_color
|
||||
new_copy.blood_mask = to_copy.blood_mask
|
||||
new_copy.damage_mask = to_copy.damage_mask
|
||||
new_copy.damage_overlays = to_copy.damage_overlays
|
||||
|
||||
//Set up a mob
|
||||
H.species = new_copy
|
||||
H.icon_state = lowertext(new_copy.get_bodytype())
|
||||
|
||||
if(new_copy.holder_type)
|
||||
H.holder_type = new_copy.holder_type
|
||||
|
||||
if(H.dna)
|
||||
H.dna.ready_dna(H)
|
||||
|
||||
return new_copy
|
||||
|
||||
/datum/species/xenochimera/get_bodytype()
|
||||
return base_species
|
||||
|
||||
/datum/species/xenochimera/get_race_key()
|
||||
var/datum/species/real = all_species[base_species]
|
||||
return real.race_key
|
||||
|
||||
|
||||
/////////////////////
|
||||
/////SPIDER RACE/////
|
||||
|
||||
@@ -387,6 +387,12 @@
|
||||
var/color_blend_mode = ICON_MULTIPLY
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Vasilissan", "Rapala") //This lets all races use the facial hair styles.
|
||||
|
||||
shaved
|
||||
name = "Shaved"
|
||||
icon_state = "bald"
|
||||
gender = NEUTER
|
||||
species_allowed = list("Human","Skrell","Unathi","Tajara", "Teshari", "Nevrean", "Akula", "Sergal", "Flatland Zorren", "Highlander Zorren", "Vulpkanin", "Xenochimera", "Xenomorph Hybrid", "Vasilissan", "Rapala") //This needed to be manually defined, apparantly.
|
||||
|
||||
|
||||
vulp_none
|
||||
name = "None"
|
||||
|
||||
@@ -129,7 +129,7 @@ var/list/organ_cache = list()
|
||||
else if(owner && owner.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs
|
||||
//** Handle antibiotics and curing infections
|
||||
handle_antibiotics()
|
||||
handle_rejection()
|
||||
//handle_rejection() //VOREStation Edit. Was causing major issues.
|
||||
handle_germ_effects()
|
||||
|
||||
//check if we've hit max_damage
|
||||
|
||||
Reference in New Issue
Block a user