how did you get here

This commit is contained in:
Linzolle
2019-09-22 20:35:49 -05:00
parent a2007dc20f
commit 323460efee
-75
View File
@@ -1,75 +0,0 @@
/datum/proc/add_trait(trait, source)
LAZYINITLIST(status_traits)
if(!status_traits[trait])
status_traits[trait] = list(source)
else
status_traits[trait] |= list(source)
/datum/proc/remove_trait(trait, list/sources, force)
if(!status_traits)
return //nothing to remove
if(!status_traits[trait])
return
if(locate(ROUNDSTART_TRAIT) in status_traits[trait] && !force) //mob traits applied through roundstart cannot normally be removed
return
if(!sources) // No defined source cures the trait entirely.
status_traits -= trait
return
if(!islist(sources))
sources = list(sources)
if(LAZYLEN(sources))
for(var/S in sources)
if(S in status_traits[trait])
status_traits[trait] -= S
else
status_traits[trait] = list()
if(!LAZYLEN(status_traits[trait]))
status_traits -= trait
/datum/proc/has_trait(trait, list/sources)
if(!status_traits)
return FALSE //well of course it doesn't have the trait
if(!status_traits[trait])
return FALSE
. = FALSE
if(sources && !islist(sources))
sources = list(sources)
if(LAZYLEN(sources))
for(var/S in sources)
if(S in status_traits[trait])
return TRUE
else if(LAZYLEN(status_traits[trait]))
return TRUE
/datum/proc/remove_all_traits(remove_species_traits = FALSE, remove_organ_traits = FALSE, remove_quirks = FALSE)
if(!status_traits)
return //nothing to remove
var/list/blacklisted_sources = list()
if(!remove_species_traits)
blacklisted_sources += SPECIES_TRAIT
if(!remove_organ_traits)
blacklisted_sources += ORGAN_TRAIT
if(!remove_quirks)
blacklisted_sources += ROUNDSTART_TRAIT
for(var/kebab in status_traits)
var/skip
for(var/S in blacklisted_sources)
if(S in status_traits[kebab])
skip = TRUE
break
if(!skip)
remove_trait(kebab, null, TRUE)
CHECK_TICK