Files
Time-Green e3dc934b8a Adds more damages, flavors and podpeople to recovered crew (#87491)
## About The Pull Request

Adds four new causes of death:
- Shot with bullet
- Shot with laser
- Poisoned with venom (deals a lot of brute and gives histamine)

As well as code to simulate any reagent or projectile to damage a body

Adds more flavors! Small chance to spawn with a prosthethic limb 

Adds a 56% chance to roll a double cause of death, and a 24% to lose
both limbs and organs (can't both roll)
Also removed the chance for having all organs and limbs

Adds podperson as a rare spawn (1/18) (they come with a plant analyzer
so you can actually scan them)

## Why It's Good For The Game
More causes of death means medical can practice/perform different
skillsets in fixing bodies! Poisonings and bullet removals especially
could not happen, so I'm happy to have those covered now.

Prosthethic limb is always fun to see, and gives the reviver the choice
to either replace or keep it.

A small chance to spawn as a podperson could help sell the illusion of
experience and having different stations. Podpersons also offer a
different playstyle without being too gamey, probably being the only
existing non-roundstart species I am comfortable adding to this. They're
also not really seen outside botany (and I'll be honest I don't ever see
them anymore), so having them fill different jobs over the station helps
make the station flowerful (even if it is somewhat rare)


![image](https://github.com/user-attachments/assets/d4d7e22b-a420-40a9-8d74-aa01dc47996e)

## Changelog
🆑
add: Added more causes of death to recovered crew
add: Added double death causes to recovered crew, and even meaner space
vultures!
add: Adds a small chance to roll quirks on recovered crew
add: Adds a small chance to spawn as a podperson to recovered crew
fix: Fixes a harddel caused by quirks never being cleared on delete
/🆑
2024-11-02 14:43:25 +01:00

53 lines
2.5 KiB
Plaintext

/// Datum for controlling the base character, such as species, scarring, styles, augments etc
/datum/corpse_character
/// Species type to spawn with
var/datum/species/species_type = /datum/species/human
/datum/corpse_character/proc/apply_character(mob/living/carbon/human/fashionable_corpse, list/saved_objects, list/recovered_items, list/datum/callback/on_revive_and_player_occupancy)
fashionable_corpse.set_species(species_type)
fashionable_corpse.fully_replace_character_name(fashionable_corpse.real_name, fashionable_corpse.generate_random_mob_name())
/// Not really all roundstart species, but plasmaman is a bit too flamboyant and felinids aren't interesting
/datum/corpse_character/mostly_roundstart
var/list/possible_species = list(
/datum/species/human = 10,
/datum/species/lizard = 2,
/datum/species/ethereal = 1,
/datum/species/moth = 1,
)
/datum/corpse_character/mostly_roundstart/apply_character(mob/living/carbon/human/fashionable_corpse, list/saved_objects, list/recovered_items, list/datum/callback/on_revive_and_player_occupancy)
species_type = pick_weight(possible_species)
..()
/datum/corpse_character/human
species_type = /datum/species/human
/// used by the morgue trays to spawn bodies (obeying three different configs???????????????????? yes please daddy give me more config for benign features)
/datum/corpse_character/morgue
/datum/corpse_character/morgue/apply_character(mob/living/carbon/human/fashionable_corpse, list/saved_objects, list/recovered_items, list/datum/callback/on_revive_and_player_occupancy)
var/use_species = !(CONFIG_GET(flag/morgue_cadaver_disable_nonhumans))
var/species_probability = CONFIG_GET(number/morgue_cadaver_other_species_probability) * use_species
var/override_species = CONFIG_GET(string/morgue_cadaver_override_species)
if(override_species)
species_type = GLOB.species_list[override_species]
else if(prob(species_probability))
species_type = GLOB.species_list[pick(get_selectable_species())]
if(!species_type)
stack_trace("failed to spawn cadaver with species ID [species_type]") //if it's invalid they'll just be a human, so no need to worry too much aside from yelling at the server owner lol.
species_type = initial(species_type)
return ..()
/datum/corpse_character/pod
species_type = /datum/species/pod
/datum/corpse_character/pod/apply_character(mob/living/carbon/human/fashionable_corpse, list/saved_objects, list/recovered_items, list/datum/callback/on_revive_and_player_occupancy)
. = ..()
recovered_items += new /obj/item/plant_analyzer () //needed to properly healthscan them