diff --git a/code/modules/antagonists/traitor/syndicate_contract.dm b/code/modules/antagonists/traitor/syndicate_contract.dm index 9f1568c295..c22012fe87 100644 --- a/code/modules/antagonists/traitor/syndicate_contract.dm +++ b/code/modules/antagonists/traitor/syndicate_contract.dm @@ -68,6 +68,9 @@ victim_belongings.Add(W) var/obj/structure/closet/supplypod/extractionpod/pod = source pod.send_up(pod) // Handle the pod returning + if(ishuman(M)) + var/mob/living/carbon/human/target = M // After we remove items, at least give them what they need to live. + target.dna.species.give_important_for_life(target) handleVictimExperience(M) // After pod is sent we start the victim narrative/heal. var/points_to_check = SSshuttle.points // This is slightly delayed because of the sleep calls above to handle the narrative. We don't want to tell the station instantly. if(points_to_check >= ransom) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index b1bc47ea4a..ae3f50e5f9 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -71,6 +71,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"] var/list/special_step_sounds //Sounds to override barefeet walkng var/grab_sound //Special sound for grabbing + var/datum/outfit/outfit_important_for_life // A path to an outfit that is important for species life e.g. plasmaman outfit // species-only traits. Can be found in DNA.dm var/list/species_traits = list() @@ -1019,6 +1020,15 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) H.apply_overlay(BODY_TAUR_LAYER) // CITADEL EDIT +/* + * Equip the outfit required for life. Replaces items currently worn. + */ +/datum/species/proc/give_important_for_life(mob/living/carbon/human/human_to_equip) + if(!outfit_important_for_life) + return + outfit_important_for_life= new() + outfit_important_for_life.equip(human_to_equip) + //This exists so sprite accessories can still be per-layer without having to include that layer's //number in their sprite name, which causes issues when those numbers change. /datum/species/proc/mutant_bodyparts_layertext(layer) diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index c899575e44..0383a19764 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -20,6 +20,7 @@ var/internal_fire = FALSE //If the bones themselves are burning clothes won't help you much disliked_food = FRUIT liked_food = VEGETABLES + outfit_important_for_life = /datum/outfit/plasmaman /datum/species/plasmaman/spec_life(mob/living/carbon/human/H) var/datum/gas_mixture/environment = H.loc.return_air() diff --git a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm index 334136cc33..b360a70775 100644 --- a/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm +++ b/code/modules/ninja/suit/n_suit_verbs/energy_net_nets.dm @@ -53,12 +53,10 @@ It is possible to destroy the net by the occupant or someone else. if(ishuman(affecting)) var/mob/living/carbon/human/H = affecting for(var/obj/item/W in H) - if(W == H.w_uniform) + if(W == H.w_uniform || W == H.shoes) continue//So all they're left with are shoes and uniform. - if(W == H.shoes) - continue H.dropItemToGround(W) - + H.dna.species.give_important_for_life(H) // After we remove items, at least give them what they need to live. var/datum/antagonist/antag_datum for(var/datum/antagonist/ninja/AD in GLOB.antagonists) //Because only ninjas get capture objectives; They're not doable without the suit. if(AD.owner == master)