mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-07-18 11:42:52 +01:00
fixes a few issues with derobotizing
This commit is contained in:
@@ -346,6 +346,27 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
|
||||
// Destroy/cyborgize organs and limbs.
|
||||
character.synthetic = null //Clear the existing var.
|
||||
var/list/to_unamputate = list()
|
||||
for(var/name in list(BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG))
|
||||
var/status = pref.organ_data[name]
|
||||
var/obj/item/organ/external/O = character.organs_by_name[name]
|
||||
if (!O)
|
||||
if (status != "amputated")
|
||||
var/is_robotic = pref.organ_data[BP_TORSO] == "cyborg"
|
||||
var/obj/item/organ/external/newpath = character.species?.has_limbs[name]?["path"]
|
||||
if (!newpath)
|
||||
continue
|
||||
var/parent_name = initial(newpath.parent_organ)
|
||||
var/obj/item/organ/external/I = character.organs_by_name[parent_name]
|
||||
if (!I && pref.organ_data[parent_name] != "amputated")
|
||||
to_unamputate[parent_name] = list("path" = character.species.has_limbs[parent_name]?["path"], "robotic" = is_robotic, "model" = pref.rlimb_data[BP_TORSO])
|
||||
is_robotic ||= I?.robotic
|
||||
to_unamputate[name] = list("path" = newpath, "robotic" = is_robotic, "model" = pref.rlimb_data[parent_name]||pref.rlimb_data[BP_TORSO])
|
||||
for(var/name in to_unamputate)
|
||||
var/newpath = to_unamputate[name]["path"]
|
||||
var/obj/item/organ/external/s = new newpath(character)
|
||||
if (to_unamputate[name]["robotic"])
|
||||
s.robotize(to_unamputate[name]["model"])
|
||||
for(var/name in list(BP_HEAD, BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM, BP_L_FOOT, BP_R_FOOT, BP_L_LEG, BP_R_LEG, BP_GROIN, BP_TORSO))
|
||||
var/status = pref.organ_data[name]
|
||||
var/obj/item/organ/external/O = character.organs_by_name[name]
|
||||
|
||||
Reference in New Issue
Block a user