mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-29 15:08:34 +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:
@@ -148,16 +148,17 @@
|
||||
var/list/clonepods = list()
|
||||
for(var/obj/machinery/clonepod/transhuman/pod in pods)
|
||||
var/status = "idle"
|
||||
var/mob/living/occupant = pod.get_occupant()
|
||||
if(pod.mess)
|
||||
status = "mess"
|
||||
else if(pod.occupant && !(pod.stat & NOPOWER))
|
||||
else if(occupant && !(pod.stat & NOPOWER))
|
||||
status = "cloning"
|
||||
clonepods += list(list(
|
||||
"pod" = REF(pod),
|
||||
"name" = sanitize(capitalize(pod.name)),
|
||||
"biomass" = pod.get_biomass(),
|
||||
"status" = status,
|
||||
"progress" = (pod.occupant && pod.occupant.stat != DEAD) ? pod.get_completion() : 0
|
||||
"progress" = (occupant && occupant.stat != DEAD) ? pod.get_completion() : 0
|
||||
))
|
||||
data["pods"] = clonepods
|
||||
|
||||
@@ -177,8 +178,8 @@
|
||||
resleevers += list(list(
|
||||
"sleever" = REF(resleever),
|
||||
"name" = sanitize(capitalize(resleever.name)),
|
||||
"occupied" = !!resleever.occupant,
|
||||
"occupant" = resleever.occupant ? resleever.occupant.real_name : "None"
|
||||
"occupied" = !!resleever.get_occupant(),
|
||||
"occupant" = resleever.get_occupant() ? resleever.get_occupant().real_name : "None"
|
||||
))
|
||||
data["sleevers"] = resleevers
|
||||
|
||||
@@ -322,7 +323,7 @@
|
||||
return
|
||||
|
||||
//Already doing someone.
|
||||
if(pod.occupant)
|
||||
if(pod.get_occupant())
|
||||
set_temp("Error: Growpod is currently occupied.", "danger")
|
||||
active_br = null
|
||||
return
|
||||
@@ -375,26 +376,26 @@
|
||||
switch(mode)
|
||||
if(1) //Body resleeving
|
||||
//No body to sleeve into.
|
||||
if(!sleever.occupant)
|
||||
if(!sleever.get_occupant())
|
||||
set_temp("Error: Resleeving pod is not occupied.", "danger")
|
||||
active_mr = null
|
||||
return
|
||||
|
||||
//OOC body lock thing.
|
||||
if(sleever.occupant.resleeve_lock && active_mr.ckey != sleever.occupant.resleeve_lock)
|
||||
if(sleever.get_occupant().resleeve_lock && active_mr.ckey != sleever.get_occupant().resleeve_lock)
|
||||
set_temp("Error: Mind incompatible with body.", "danger")
|
||||
active_mr = null
|
||||
return
|
||||
|
||||
var/list/subtargets = list()
|
||||
for(var/mob/living/carbon/human/H in sleever.occupant)
|
||||
for(var/mob/living/carbon/human/H in sleever.get_occupant())
|
||||
if(H.resleeve_lock && active_mr.ckey != H.resleeve_lock)
|
||||
continue
|
||||
subtargets += H
|
||||
if(subtargets.len)
|
||||
var/oc_sanity = sleever.occupant
|
||||
var/oc_sanity = sleever.get_occupant()
|
||||
override = tgui_input_list(ui.user,"Multiple bodies detected. Select target for resleeving of [active_mr.mindname] manually. Sleeving of primary body is unsafe with sub-contents, and is not listed.", "Resleeving Target", subtargets)
|
||||
if(!override || oc_sanity != sleever.occupant || !(override in sleever.occupant))
|
||||
if(!override || oc_sanity != sleever.get_occupant() || !(override in sleever.get_occupant()))
|
||||
set_temp("Error: Target selection aborted.", "danger")
|
||||
active_mr = null
|
||||
return
|
||||
@@ -558,7 +559,7 @@
|
||||
if(!selected_sleever)
|
||||
can_sleeve_active = FALSE
|
||||
set_temp("Error: Cannot sleeve due to no selected sleever.", "danger")
|
||||
if(selected_sleever && !selected_sleever.occupant)
|
||||
if(selected_sleever && !selected_sleever.get_occupant())
|
||||
can_sleeve_active = FALSE
|
||||
set_temp("Error: Cannot sleeve due to lack of sleever occupant.", "danger")
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user