mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-22 11:38:12 +01:00
Dna, Bodyrecord, Xenochi Revive Refactor (#17732)
* changeling fix * Move body spawning into BR * small fix, organization * replace xeno regen * Body descriptor system removed * Revert "Body descriptor system removed" This reverts commit04a0aa3ac8. * massive bodyrecord copy refactor * this too * dna copying is now sane * make a merge easier * better file for this * may we ensure peace everlasting * linter * oops, missed the test * fixed up * furthering the test * different way to check * looking promising * required exclusions * more test * another tweak * setup better * globin * test name change * really mess up that monkey * gradient style to UI entry * scramble ignore * illegal species * scramble fix * grad fix, more test fixes * doing that right * need these too * missed defferal * missed pathing * documentation wall * blood color needs a safety * promethean prep * this early set isn't needed * some protections * fixed waddler nulltest * failure test * intensify scan * second fail test * noticing * dna test case * other dna test case * Test is bunk * huge dna cleanup, better signal * don't edit these * documentation * Do not use loc = src.loc * oops * Use weakrefs in pods * remaining weakrefs * reduce changes in pr * cloning computer does not rotate itself when used * moved body design to new BR code, and fixed screen size * badlinting * updated * No instakilling teshari * jiggles you * TGUI * move along * m ove it * Update AppearanceChangerMisc.tsx * this too * gender is race whoops * Allow old clonepods too * xc * further encapsulation and some fixes * oops * misc not race * separated that * custom footsteps exchanged * Custom speech bubble and xenochi stuff * Update xenochimera.dm * remove digileg snowflake * try this * Update xenochimera.dm * proper close * Always update our DNA * awa * extremely laggy check removed, actually useless * explaining * lower delay time * slower jigglin * Revert "slower jigglin" This reverts commitc801f7d7f5. * disable appearance editor due to various issues * Promie love * xenochi vanity test * lmao * earwings * wording and slot revival * mobvar? * Phasing out specific shapeshifter appearances If you have access to changing your icon, you can change whatever you want. * saveslot loading * more * synth * Shoot out limbs * almost ready * nullcheck * xenochi revive handles size and weight correctly * weaver cocoon updated xenochi internal record after tf * cannot remove from lost limbs * limbs properly respawn on slot revive --------- Co-authored-by: C.L. <killer65311@gmail.com>
This commit is contained in:
@@ -800,11 +800,11 @@
|
||||
//We REALLY don't need to go through every variable. Doing so makes this lag like hell on 515
|
||||
/datum/species/proc/copy_variables(var/datum/species/S, var/list/whitelist)
|
||||
//List of variables to ignore, trying to copy type will runtime.
|
||||
//var/list/blacklist = list("type", "loc", "client", "ckey")
|
||||
//var/list/blacklist = list(BLACKLISTED_COPY_VARS)
|
||||
//Makes thorough copy of species datum.
|
||||
for(var/i in whitelist)
|
||||
if(!(i in S.vars)) //Don't copy incompatible vars.
|
||||
continue
|
||||
//if(!(i in S.vars)) // This check SOUNDS like a good idea, until you realize it loops over every var in base datum + species datum + byond builtin vars for EACH var in the whitelist. All the vars in whitelist are in the base species datum anyway, so this is unneeded.
|
||||
// continue
|
||||
if(S.vars[i] != vars[i] && !islist(vars[i])) //If vars are same, no point in copying.
|
||||
S.vars[i] = vars[i]
|
||||
|
||||
|
||||
@@ -109,16 +109,8 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
cold_discomfort_strings = list("You feel too cool.")
|
||||
|
||||
inherent_verbs = list(
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_shape,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_colour,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_hair,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_hair_colors,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_gender,
|
||||
/mob/living/carbon/human/proc/innate_shapeshifting,
|
||||
/mob/living/carbon/human/proc/regenerate,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_wings,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_tail,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_ears,
|
||||
/mob/living/carbon/human/proc/shapeshifter_select_secondary_ears,
|
||||
/mob/living/carbon/human/proc/prommie_blobform,
|
||||
/mob/living/proc/set_size,
|
||||
/mob/living/carbon/human/proc/promethean_select_opaqueness,
|
||||
@@ -411,3 +403,9 @@ var/datum/species/shapeshifter/promethean/prometheans
|
||||
return
|
||||
else
|
||||
prommie_intoblob()
|
||||
|
||||
/mob/living/carbon/human/proc/innate_shapeshifting()
|
||||
set name = "Transform Appearance"
|
||||
set category = "Abilities.Superpower"
|
||||
var/datum/tgui_module/appearance_changer/innate/I = new(src, src)
|
||||
I.tgui_interact(src)
|
||||
|
||||
@@ -679,7 +679,12 @@
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/// Revives a body using the client's preferences if human
|
||||
/mob/living/proc/revive()
|
||||
revival_healing_action()
|
||||
|
||||
/// Performs the actual healing of Aheal, seperate from revive() because it does not use client prefs. Will not heal everything, and expects to be called through revive() or with a bodyrecord doing a respawn/revive.
|
||||
/mob/living/proc/revival_healing_action()
|
||||
rejuvenate()
|
||||
if(buckled)
|
||||
buckled.unbuckle_mob()
|
||||
@@ -701,6 +706,8 @@
|
||||
if(ai_holder) // AI gets told to sleep when killed. Since they're not dead anymore, wake it up.
|
||||
ai_holder.go_wake()
|
||||
|
||||
SEND_SIGNAL(src, COMSIG_HUMAN_DNA_FINALIZED)
|
||||
|
||||
/mob/living/proc/rejuvenate()
|
||||
if(reagents)
|
||||
reagents.clear_reagents()
|
||||
|
||||
@@ -437,15 +437,15 @@
|
||||
var/datum/language/keylang = GLOB.all_languages[client.prefs.language_custom_keys[key]]
|
||||
if(keylang)
|
||||
new_character.language_keys[key] = keylang
|
||||
// VOREStation Add: Preferred Language Setting;
|
||||
if(client.prefs.preferred_language) // Do we have a preferred language?
|
||||
var/datum/language/def_lang = GLOB.all_languages[client.prefs.preferred_language]
|
||||
if(def_lang)
|
||||
new_character.default_language = def_lang
|
||||
// VOREStation Add End
|
||||
// And uncomment this, too.
|
||||
//new_character.dna.UpdateSE()
|
||||
|
||||
SEND_SIGNAL(new_character, COMSIG_HUMAN_DNA_FINALIZED)
|
||||
|
||||
// Do the initial caching of the player's body icons.
|
||||
new_character.force_update_limbs()
|
||||
new_character.update_icons_body()
|
||||
|
||||
@@ -37,7 +37,7 @@ GLOBAL_LIST_INIT(fancy_sprite_accessory_color_channel_names, list("Primary", "Se
|
||||
var/gender = NEUTER
|
||||
|
||||
// Restrict some styles to specific species. Default to all species to avoid runtimes in character creator.
|
||||
var/list/species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_ZADDAT, SPECIES_SPARKLE)
|
||||
var/list/species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_ZADDAT, SPECIES_SPARKLE, SPECIES_PROMETHEAN)
|
||||
|
||||
// Whether or not the accessory can be affected by colouration
|
||||
var/do_colouration = 1
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
var/extra_overlay2
|
||||
var/desc = DEVELOPER_WARNING_NAME
|
||||
em_block = TRUE
|
||||
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_SPARKLE)
|
||||
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_SPARKLE, SPECIES_PROMETHEAN)
|
||||
|
||||
/**
|
||||
* Gets the number of color channels we have.
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
var/extra_overlay_w // Flapping state for extra overlay
|
||||
var/extra_overlay2_w
|
||||
|
||||
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_SPARKLE)
|
||||
species_allowed = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_UNATHI, SPECIES_TAJARAN, SPECIES_TESHARI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_FENNEC, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_XENOCHIMERA, SPECIES_XENOHYBRID, SPECIES_VASILISSAN, SPECIES_RAPALA, SPECIES_PROTEAN, SPECIES_ALRAUNE, SPECIES_WEREBEAST, SPECIES_SHADEKIN, SPECIES_SHADEKIN_CREW, SPECIES_ALTEVIAN, SPECIES_LLEILL, SPECIES_HANNER, SPECIES_SPARKLE, SPECIES_PROMETHEAN)
|
||||
|
||||
var/wing_offset = 0
|
||||
var/multi_dir = FALSE // Does it use different sprites at different layers? _front will be added for sprites on low layer, _back to high layer
|
||||
|
||||
@@ -497,3 +497,5 @@
|
||||
var/new_speech_bubble = tgui_input_list(src, "Pick new voice (default for automatic selection)", "Character Preference", GLOB.selectable_speech_bubbles)
|
||||
if(new_speech_bubble)
|
||||
custom_speech_bubble = new_speech_bubble
|
||||
if(dna)
|
||||
dna.custom_speech_bubble = new_speech_bubble
|
||||
|
||||
Reference in New Issue
Block a user