This commit is contained in:
SandPoot
2024-04-05 17:57:54 -03:00
parent bd7040a50d
commit 68fa21d602
34 changed files with 223 additions and 126 deletions
-1
View File
@@ -17,7 +17,6 @@
QDEL_LIST(internal_organs)
QDEL_LIST(stomach_contents)
QDEL_LIST(bodyparts)
QDEL_LIST(implants)
hand_bodyparts = null //Just references out bodyparts, don't need to delete twice.
remove_from_all_data_huds()
QDEL_NULL(dna)
@@ -553,7 +553,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
/datum/species/proc/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load)
if(C.dna.species.exotic_bloodtype)
if(!new_species.exotic_bloodtype)
if(!new_species?.exotic_bloodtype)
C.dna.blood_type = random_blood_type()
else
C.dna.blood_type = new_species.exotic_bloodtype
@@ -573,7 +573,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
C.type_of_meat = initial(meat)
//If their inert mutation is not the same, swap it out
if((inert_mutation != new_species.inert_mutation) && LAZYLEN(C.dna.mutation_index) && (inert_mutation in C.dna.mutation_index))
if(new_species && (inert_mutation != new_species.inert_mutation) && LAZYLEN(C.dna.mutation_index) && (inert_mutation in C.dna.mutation_index))
C.dna.remove_mutation(inert_mutation)
//keep it at the right spot, so we can't have people taking shortcuts
var/location = C.dna.mutation_index.Find(inert_mutation)
@@ -582,7 +582,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
C.dna.mutation_index[new_species.inert_mutation] = create_sequence(new_species.inert_mutation)
C.dna.default_mutation_genes[new_species.inert_mutation] = C.dna.mutation_index[new_species.inert_mutation]
if(!new_species.has_field_of_vision && has_field_of_vision && ishuman(C) && CONFIG_GET(flag/use_field_of_vision))
if(new_species && !new_species.has_field_of_vision && has_field_of_vision && ishuman(C) && CONFIG_GET(flag/use_field_of_vision))
var/datum/component/field_of_vision/F = C.GetComponent(/datum/component/field_of_vision)
if(F)
qdel(F)
@@ -320,17 +320,17 @@
L["name"] = body.name
L["ref"] = "[REF(body)]"
L["occupied"] = occupied
var/button
var/button_state
if(occupied == "owner")
button = "selected"
button_state = "selected"
else if(occupied == "stranger")
button = "danger"
button_state = "danger"
else if(can_swap(body))
button = null
button_state = null
else
button = "disabled"
button_state = "disabled"
L["swap_button_state"] = button
L["swap_button_state"] = button_state
L["swappable"] = (occupied == "available") && can_swap(body)
data["bodies"] += list(L)
@@ -745,9 +745,9 @@
background_icon_state = "bg_alien"
var/datum/species/jelly/stargazer/species
/datum/action/innate/link_minds/New(_species)
/datum/action/innate/link_minds/New(species)
..()
species = _species
src.species = species
/datum/action/innate/link_minds/Activate()
var/mob/living/carbon/human/H = owner
@@ -771,3 +771,7 @@
else
to_chat(H, "<span class='warning'>You can't seem to link [target]'s mind...</span>")
to_chat(target, "<span class='warning'>The foreign presence leaves your mind.</span>")
/datum/action/innate/link_minds/Destroy()
species = null
return ..()