mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
[MIRROR] Ported Autohisses and Autohiss Unit Test (#10744)
Co-authored-by: Will <7099514+Willburd@users.noreply.github.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
93afa85d65
commit
ea0f307f5a
36
code/unit_tests/authohiss_tests.dm
Normal file
36
code/unit_tests/authohiss_tests.dm
Normal file
@@ -0,0 +1,36 @@
|
||||
/datum/unit_test/autohiss_shall_be_exclusive
|
||||
name = "TRAITS: Autohiss traits shall be exclusive"
|
||||
|
||||
/datum/unit_test/autohiss_shall_be_exclusive/start_test()
|
||||
var/failed = FALSE
|
||||
|
||||
var/list/hiss_list = list()
|
||||
for(var/traitpath in GLOB.all_traits)
|
||||
var/datum/trait/T = GLOB.all_traits[traitpath]
|
||||
if(!T.var_changes)
|
||||
continue
|
||||
if(!islist(T.var_changes["autohiss_basic_map"]))
|
||||
continue
|
||||
hiss_list += T
|
||||
|
||||
for(var/datum/trait/T in hiss_list)
|
||||
if(T.type in T.excludes)
|
||||
log_unit_test("[T.type]: Trait - Autohiss excludes itself.")
|
||||
failed = TRUE
|
||||
|
||||
if(!T.excludes)
|
||||
log_unit_test("[T.type]: Trait - Autohiss missing exclusion list.")
|
||||
failed = TRUE
|
||||
continue
|
||||
|
||||
var/list/exempt_list = hiss_list.Copy() - T // MUST exclude all others except itself
|
||||
for(var/datum/trait/EX in exempt_list)
|
||||
if(!(EX.type in T.excludes))
|
||||
log_unit_test("[T.type]: Trait - Autohiss missing exclusion for [EX].")
|
||||
failed = TRUE
|
||||
|
||||
if(failed)
|
||||
fail("One or more autohiss traits allow another autohiss to be chosen with it.")
|
||||
else
|
||||
pass("All [hiss_list.len] autohiss traits are properly exclusive.")
|
||||
return failed
|
||||
Reference in New Issue
Block a user