mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 21:18:37 +01:00
Streamlines Life() a little (#96215)
## About The Pull Request Main changes - `handle_mutations` is gone, DNA Injectors are now managed via a status effect - `handle_diseases` is gone, disease stages are just handled via life signal - `handle_bodyparts` is gone, it was unused and in the future any implementations should use a life signal - `spec_life` is gone, the main content of it is now in `human/Life`, most children implementations now use life signal, zombie tongues now handle zombie groans - Life signal was split in two (pre and active) Other changes - DNA injector code was cleaned up considerably - HARS now alerts admins when you inject someone else with it like Monkey - `COPY_DNA_SE` is no longer mistakenly unused (meaning stuff like transformation sting no longer copies "active mutations") ## Why It's Good For The Game Across the course of a full round we spend the same amount of time doing literally nothing in life as we spend on handling human breathing. Now in the context of a full round this is 8 seconds. Which in the grand scheme of things, not a whole lot, but if we can get a tiny performance gain from... not doing literally nothing (especially when we can do these things cleaner with signals) that's a win in my book ## Changelog 🆑 Melbert refactor: Refactored dna injectors (both the ones that change appearance and activate mutations), report any oddities with them like failing to revert your appearance or mutations not applying correctly code: Ever so slightly changed how diseases tick, report any oddities code: Ever so slightly changed how some species mechanics tick, like golems and slimes, report any oddities code: The code behind printing appearance modifying dna injectors from genetics has changed, report any oddities code: Some backend transformation sting code changed slightly, report any oddities code: Zombie "idle" groaning is now tied to the tongue rather than the species itself admin: Force-injecting someone with HARS give an admin alert, the same as force-injecting someone with Monkey fix: Several methods of copying DNA (including transformation sting) mistakenly copied "active mutations", this has been fixed /🆑 --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
This commit is contained in:
co-authored by
John Willard
parent
7cf48344fb
commit
e68c1edad1
@@ -89,9 +89,8 @@
|
||||
var/list/valid_chrom_list = list()
|
||||
/// List of traits that are added or removed by the mutation with GENETIC_TRAIT source.
|
||||
var/list/mutation_traits
|
||||
|
||||
/datum/mutation/New()
|
||||
. = ..()
|
||||
/// if TRUE admins get alerted when someone force-injects someone else with this mutation
|
||||
var/warn_admins_on_inject = FALSE
|
||||
|
||||
/datum/mutation/Destroy()
|
||||
power_path = null
|
||||
|
||||
@@ -246,6 +246,7 @@
|
||||
instability = NEGATIVE_STABILITY_MAJOR // mmmonky
|
||||
remove_on_aheal = FALSE
|
||||
locked = TRUE //Species specific, keep out of actual gene pool
|
||||
warn_admins_on_inject = TRUE
|
||||
var/datum/species/original_species = /datum/species/human
|
||||
var/original_name
|
||||
|
||||
@@ -533,6 +534,7 @@
|
||||
difficulty = 12 //pretty good for traitors
|
||||
quality = NEGATIVE //holy shit no eyes or tongue or ears
|
||||
text_gain_indication = span_warning("Something feels off.")
|
||||
warn_admins_on_inject = TRUE
|
||||
|
||||
/datum/mutation/headless/on_acquiring()
|
||||
. = ..()
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
/datum/action/cooldown/spell/void/cursed/proc/on_life(mob/living/source, seconds_per_tick)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
if(!isliving(source) || HAS_TRAIT(source, TRAIT_STASIS) || source.stat == DEAD || HAS_TRAIT(source, TRAIT_NO_TRANSFORM))
|
||||
if(HAS_TRAIT(source, TRAIT_STASIS) || source.stat == DEAD)
|
||||
return
|
||||
|
||||
if(!is_valid_target(source))
|
||||
|
||||
Reference in New Issue
Block a user