mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Merge pull request #14056 from Seris02/prometheanchanges
promethean fixes and QoLs
This commit is contained in:
committed by
CHOMPStation2
parent
e291c29e0f
commit
1ba39fee84
@@ -43,3 +43,9 @@
|
|||||||
//custom species base sprites
|
//custom species base sprites
|
||||||
#define SPECIES_FENNEC "Fennec"
|
#define SPECIES_FENNEC "Fennec"
|
||||||
#define SPECIES_XENOHYBRID "Xenohybrid"
|
#define SPECIES_XENOHYBRID "Xenohybrid"
|
||||||
|
|
||||||
|
//for custom bodytypes
|
||||||
|
|
||||||
|
#define SELECTS_BODYTYPE_FALSE 0
|
||||||
|
#define SELECTS_BODYTYPE_CUSTOM 1
|
||||||
|
#define SELECTS_BODYTYPE_SHAPESHIFTER 2
|
||||||
|
|||||||
@@ -241,9 +241,15 @@
|
|||||||
return TOPIC_REFRESH
|
return TOPIC_REFRESH
|
||||||
|
|
||||||
else if(href_list["custom_base"])
|
else if(href_list["custom_base"])
|
||||||
var/list/choices = GLOB.custom_species_bases
|
var/list/choices
|
||||||
if(pref.species != SPECIES_CUSTOM)
|
var/datum/species/spec = GLOB.all_species[pref.species]
|
||||||
choices = (choices | pref.species)
|
if (spec.selects_bodytype == SELECTS_BODYTYPE_SHAPESHIFTER && istype(spec, /datum/species/shapeshifter))
|
||||||
|
var/datum/species/shapeshifter/spec_shifter = spec
|
||||||
|
choices = spec_shifter.valid_transform_species
|
||||||
|
else
|
||||||
|
choices = GLOB.custom_species_bases
|
||||||
|
if(pref.species != SPECIES_CUSTOM)
|
||||||
|
choices = (choices | pref.species)
|
||||||
var/text_choice = tgui_input_list(usr, "Pick an icon set for your species:","Icon Base", choices)
|
var/text_choice = tgui_input_list(usr, "Pick an icon set for your species:","Icon Base", choices)
|
||||||
if(text_choice in choices)
|
if(text_choice in choices)
|
||||||
pref.custom_base = text_choice
|
pref.custom_base = text_choice
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ var/list/wrapped_species_by_ref = list()
|
|||||||
|
|
||||||
var/list/valid_transform_species = list()
|
var/list/valid_transform_species = list()
|
||||||
var/monochromatic
|
var/monochromatic
|
||||||
var/default_form = SPECIES_HUMAN
|
//var/default_form = SPECIES_HUMAN //VOREStation edit
|
||||||
|
|
||||||
/datum/species/shapeshifter/get_valid_shapeshifter_forms(var/mob/living/carbon/human/H)
|
/datum/species/shapeshifter/get_valid_shapeshifter_forms(var/mob/living/carbon/human/H)
|
||||||
return valid_transform_species
|
return valid_transform_species
|
||||||
@@ -63,7 +63,7 @@ var/list/wrapped_species_by_ref = list()
|
|||||||
|
|
||||||
/datum/species/shapeshifter/handle_post_spawn(var/mob/living/carbon/human/H)
|
/datum/species/shapeshifter/handle_post_spawn(var/mob/living/carbon/human/H)
|
||||||
..()
|
..()
|
||||||
wrapped_species_by_ref["\ref[H]"] = default_form
|
wrapped_species_by_ref["\ref[H]"] = base_species //VOREStation edit
|
||||||
if(monochromatic)
|
if(monochromatic)
|
||||||
H.r_hair = H.r_skin
|
H.r_hair = H.r_skin
|
||||||
H.g_hair = H.g_skin
|
H.g_hair = H.g_skin
|
||||||
@@ -159,6 +159,7 @@ var/list/wrapped_species_by_ref = list()
|
|||||||
return
|
return
|
||||||
shapeshifter_change_shape(new_species)
|
shapeshifter_change_shape(new_species)
|
||||||
|
|
||||||
|
/* VOREStation edit - moved to species_shapeshift_vr.dm
|
||||||
/mob/living/carbon/human/proc/shapeshifter_change_shape(var/new_species = null)
|
/mob/living/carbon/human/proc/shapeshifter_change_shape(var/new_species = null)
|
||||||
if(!new_species)
|
if(!new_species)
|
||||||
return
|
return
|
||||||
@@ -166,6 +167,7 @@ var/list/wrapped_species_by_ref = list()
|
|||||||
wrapped_species_by_ref["\ref[src]"] = new_species
|
wrapped_species_by_ref["\ref[src]"] = new_species
|
||||||
visible_message("<b>\The [src]</b> shifts and contorts, taking the form of \a [new_species]!")
|
visible_message("<b>\The [src]</b> shifts and contorts, taking the form of \a [new_species]!")
|
||||||
regenerate_icons()
|
regenerate_icons()
|
||||||
|
*/
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/shapeshifter_select_colour()
|
/mob/living/carbon/human/proc/shapeshifter_select_colour()
|
||||||
|
|
||||||
@@ -318,11 +320,11 @@ var/list/wrapped_species_by_ref = list()
|
|||||||
var/new_eyes = input(usr, "Pick a new color for your eyes.","Eye Color", current_color) as null|color
|
var/new_eyes = input(usr, "Pick a new color for your eyes.","Eye Color", current_color) as null|color
|
||||||
if(!new_eyes)
|
if(!new_eyes)
|
||||||
return
|
return
|
||||||
|
|
||||||
shapeshifter_set_eye_color(new_eyes)
|
shapeshifter_set_eye_color(new_eyes)
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/shapeshifter_set_eye_color(var/new_eyes)
|
/mob/living/carbon/human/proc/shapeshifter_set_eye_color(var/new_eyes)
|
||||||
|
|
||||||
var/list/new_color_rgb_list = hex2rgb(new_eyes)
|
var/list/new_color_rgb_list = hex2rgb(new_eyes)
|
||||||
// First, update mob vars.
|
// First, update mob vars.
|
||||||
r_eyes = new_color_rgb_list[1]
|
r_eyes = new_color_rgb_list[1]
|
||||||
|
|||||||
@@ -1,3 +1,7 @@
|
|||||||
|
/datum/species/shapeshifter
|
||||||
|
base_species = SPECIES_HUMAN
|
||||||
|
selects_bodytype = SELECTS_BODYTYPE_SHAPESHIFTER
|
||||||
|
|
||||||
/mob/living/carbon/human/proc/shapeshifter_select_ears()
|
/mob/living/carbon/human/proc/shapeshifter_select_ears()
|
||||||
set name = "Select Ears"
|
set name = "Select Ears"
|
||||||
set category = "Abilities"
|
set category = "Abilities"
|
||||||
@@ -175,4 +179,15 @@
|
|||||||
L.transparent = !L.transparent
|
L.transparent = !L.transparent
|
||||||
visible_message("<span class='notice'>\The [src]'s internal composition seems to change.</span>")
|
visible_message("<span class='notice'>\The [src]'s internal composition seems to change.</span>")
|
||||||
update_icons_body()
|
update_icons_body()
|
||||||
update_hair()
|
update_hair()
|
||||||
|
|
||||||
|
/mob/living/carbon/human/proc/shapeshifter_change_shape(var/new_species = null, var/visible = TRUE) //not sure if this needs to be moved to a separate file but
|
||||||
|
if(!new_species)
|
||||||
|
return
|
||||||
|
|
||||||
|
dna.base_species = new_species
|
||||||
|
species.base_species = new_species
|
||||||
|
wrapped_species_by_ref["\ref[src]"] = new_species
|
||||||
|
if (visible)
|
||||||
|
visible_message("<b>\The [src]</b> shifts and contorts, taking the form of \a [new_species]!")
|
||||||
|
regenerate_icons()
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
var/trashcan = FALSE //It's always sunny in the wrestling ring.
|
var/trashcan = FALSE //It's always sunny in the wrestling ring.
|
||||||
var/eat_minerals = FALSE //HEAVY METAL DIET
|
var/eat_minerals = FALSE //HEAVY METAL DIET
|
||||||
var/base_species = null // Unused outside of a few species
|
var/base_species = null // Unused outside of a few species
|
||||||
var/selects_bodytype = FALSE // Allows the species to choose from body types like custom species can, affecting suit fitting and etcetera as you would expect.
|
var/selects_bodytype = SELECTS_BODYTYPE_FALSE // Allows the species to choose from body types like custom species can, affecting suit fitting and etcetera as you would expect.
|
||||||
|
|
||||||
var/bloodsucker = FALSE // Allows safely getting nutrition from blood.
|
var/bloodsucker = FALSE // Allows safely getting nutrition from blood.
|
||||||
|
|
||||||
@@ -61,10 +61,14 @@
|
|||||||
ASSERT(istype(H))
|
ASSERT(istype(H))
|
||||||
var/datum/species/new_copy = new src.type()
|
var/datum/species/new_copy = new src.type()
|
||||||
new_copy.race_key = race_key
|
new_copy.race_key = race_key
|
||||||
|
new_copy.base_species = custom_base
|
||||||
|
if (custom_base)
|
||||||
|
if(selects_bodytype == SELECTS_BODYTYPE_CUSTOM) //If race selects a bodytype, retrieve the custom_base species and copy needed variables.
|
||||||
|
var/datum/species/S = GLOB.all_species[custom_base]
|
||||||
|
S.copy_variables(new_copy, copy_vars)
|
||||||
|
|
||||||
if(selects_bodytype && custom_base) //If race selects a bodytype, retrieve the custom_base species and copy needed variables.
|
if(selects_bodytype == SELECTS_BODYTYPE_SHAPESHIFTER)
|
||||||
var/datum/species/S = GLOB.all_species[custom_base]
|
H.shapeshifter_change_shape(custom_base, FALSE)
|
||||||
S.copy_variables(new_copy, copy_vars)
|
|
||||||
|
|
||||||
for(var/organ in has_limbs) //Copy important organ data generated by species.
|
for(var/organ in has_limbs) //Copy important organ data generated by species.
|
||||||
var/list/organ_data = has_limbs[organ]
|
var/list/organ_data = has_limbs[organ]
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
max_age = 250
|
max_age = 250
|
||||||
health_hud_intensity = 1.5
|
health_hud_intensity = 1.5
|
||||||
base_species = SPECIES_ALRAUNE
|
base_species = SPECIES_ALRAUNE
|
||||||
selects_bodytype = TRUE
|
selects_bodytype = SELECTS_BODYTYPE_CUSTOM //VOREStation edit
|
||||||
|
|
||||||
male_scream_sound = null //CHOMPedit
|
male_scream_sound = null //CHOMPedit
|
||||||
female_scream_sound = null //CHOMPedit
|
female_scream_sound = null //CHOMPedit
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
/datum/species/custom
|
/datum/species/custom
|
||||||
name = SPECIES_CUSTOM
|
name = SPECIES_CUSTOM
|
||||||
name_plural = "Custom"
|
name_plural = "Custom"
|
||||||
selects_bodytype = TRUE
|
selects_bodytype = SELECTS_BODYTYPE_CUSTOM
|
||||||
base_species = SPECIES_HUMAN
|
base_species = SPECIES_HUMAN
|
||||||
|
|
||||||
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite)
|
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch, /datum/unarmed_attack/bite)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
brute_mod = 0.8 //About as tanky to brute as a Unathi. They'll probably snap and go feral when hurt though.
|
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.
|
burn_mod = 1.15 //As vulnerable to burn as a Tajara.
|
||||||
base_species = "Xenochimera"
|
base_species = "Xenochimera"
|
||||||
selects_bodytype = TRUE
|
selects_bodytype = SELECTS_BODYTYPE_CUSTOM
|
||||||
|
|
||||||
num_alternate_languages = 3
|
num_alternate_languages = 3
|
||||||
secondary_langs = list("Sol Common")
|
secondary_langs = list("Sol Common")
|
||||||
|
|||||||
@@ -266,6 +266,12 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon()
|
|||||||
var/obj/item/organ/external/head/head = organs_by_name[BP_HEAD]
|
var/obj/item/organ/external/head/head = organs_by_name[BP_HEAD]
|
||||||
if(head)
|
if(head)
|
||||||
if(!istype(head, /obj/item/organ/external/stump))
|
if(!istype(head, /obj/item/organ/external/stump))
|
||||||
|
if (species.selects_bodytype != SELECTS_BODYTYPE_FALSE && dna.base_species)
|
||||||
|
var/headtype = GLOB.all_species[dna.base_species]?.has_limbs[BP_HEAD]
|
||||||
|
var/obj/item/organ/external/head/headtypepath = headtype["path"]
|
||||||
|
if (headtypepath)
|
||||||
|
head.eye_icon = initial(headtypepath.eye_icon)
|
||||||
|
head.eye_icon_location = initial(headtypepath.eye_icon_location)
|
||||||
icon_key += "[head.eye_icon]"
|
icon_key += "[head.eye_icon]"
|
||||||
for(var/organ_tag in species.has_limbs)
|
for(var/organ_tag in species.has_limbs)
|
||||||
var/obj/item/organ/external/part = organs_by_name[organ_tag]
|
var/obj/item/organ/external/part = organs_by_name[organ_tag]
|
||||||
|
|||||||
Reference in New Issue
Block a user