mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +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
@@ -57,11 +57,11 @@
|
|||||||
activation_message="Your body feels chilly."
|
activation_message="Your body feels chilly."
|
||||||
primitive_expression_messages=list("shivers.")
|
primitive_expression_messages=list("shivers.")
|
||||||
|
|
||||||
|
|
||||||
/datum/trait/neutral/autohiss_unathi
|
/datum/trait/neutral/autohiss_unathi
|
||||||
name = "Autohiss (Unathi)"
|
name = "Autohiss (Unathi)"
|
||||||
desc = "You roll your S's and x's"
|
desc = "You roll your S's and x's"
|
||||||
cost = 0
|
cost = 0
|
||||||
|
custom_only = FALSE
|
||||||
var_changes = list(
|
var_changes = list(
|
||||||
autohiss_basic_map = list(
|
autohiss_basic_map = list(
|
||||||
"s" = list("ss", "sss", "ssss")
|
"s" = list("ss", "sss", "ssss")
|
||||||
@@ -70,25 +70,43 @@
|
|||||||
"x" = list("ks", "kss", "ksss")
|
"x" = list("ks", "kss", "ksss")
|
||||||
),
|
),
|
||||||
autohiss_exempt = list(LANGUAGE_UNATHI))
|
autohiss_exempt = list(LANGUAGE_UNATHI))
|
||||||
excludes = list(/datum/trait/neutral/autohiss_tajaran, /datum/trait/neutral/autohiss_vassilian, /datum/trait/neutral/autohiss_zaddat) // CHOMPEdit: exclude vassillian hiss
|
excludes = list(
|
||||||
custom_only = FALSE
|
/datum/trait/neutral/autohiss_tajaran,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian,
|
||||||
|
/datum/trait/neutral/autohiss_yingish,
|
||||||
|
/datum/trait/neutral/autohiss_unathi/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera)
|
||||||
|
|
||||||
/datum/trait/neutral/autohiss_tajaran
|
/datum/trait/neutral/autohiss_tajaran
|
||||||
name = "Autohiss (Tajaran)"
|
name = "Autohiss (Tajaran)"
|
||||||
desc = "You roll your R's."
|
desc = "You roll your R's."
|
||||||
cost = 0
|
cost = 0
|
||||||
|
custom_only = FALSE
|
||||||
var_changes = list(
|
var_changes = list(
|
||||||
autohiss_basic_map = list(
|
autohiss_basic_map = list(
|
||||||
"r" = list("rr", "rrr", "rrrr")
|
"r" = list("rr", "rrr", "rrrr")
|
||||||
),
|
),
|
||||||
autohiss_exempt = list(LANGUAGE_SIIK,LANGUAGE_AKHANI,LANGUAGE_ALAI))
|
autohiss_exempt = list(LANGUAGE_SIIK,LANGUAGE_AKHANI,LANGUAGE_ALAI))
|
||||||
excludes = list(/datum/trait/neutral/autohiss_unathi, /datum/trait/neutral/autohiss_zaddat, /datum/trait/neutral/autohiss_vassilian) // CHOMPEdit: exclude vassillian hiss
|
excludes = list(
|
||||||
custom_only = FALSE
|
/datum/trait/neutral/autohiss_unathi,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian,
|
||||||
|
/datum/trait/neutral/autohiss_yingish,
|
||||||
|
/datum/trait/neutral/autohiss_unathi/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera)
|
||||||
|
|
||||||
/datum/trait/neutral/autohiss_zaddat
|
/datum/trait/neutral/autohiss_zaddat
|
||||||
name = "Autohiss (Zaddat)"
|
name = "Autohiss (Zaddat)"
|
||||||
desc = "You buzz your S's and F's."
|
desc = "You buzz your S's and F's."
|
||||||
cost = 0
|
cost = 0
|
||||||
|
custom_only = FALSE
|
||||||
var_changes = list(
|
var_changes = list(
|
||||||
autohiss_basic_map = list(
|
autohiss_basic_map = list(
|
||||||
"f" = list("v","vh"),
|
"f" = list("v","vh"),
|
||||||
@@ -101,8 +119,70 @@
|
|||||||
"v" = list("vv", "vvv")
|
"v" = list("vv", "vvv")
|
||||||
),
|
),
|
||||||
autohiss_exempt = list(LANGUAGE_ZADDAT,LANGUAGE_VESPINAE))
|
autohiss_exempt = list(LANGUAGE_ZADDAT,LANGUAGE_VESPINAE))
|
||||||
excludes = list(/datum/trait/neutral/autohiss_tajaran, /datum/trait/neutral/autohiss_unathi, /datum/trait/neutral/autohiss_vassilian) // CHOMPEdit: exclude vassillian hiss
|
excludes = list(
|
||||||
|
/datum/trait/neutral/autohiss_tajaran,
|
||||||
|
/datum/trait/neutral/autohiss_unathi,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian,
|
||||||
|
/datum/trait/neutral/autohiss_yingish,
|
||||||
|
/datum/trait/neutral/autohiss_unathi/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera)
|
||||||
|
|
||||||
|
/datum/trait/neutral/autohiss_vassilian
|
||||||
|
name = "Autohiss (Vassilian)"
|
||||||
|
desc = "You buzz your S's, F's, Th's, and R's."
|
||||||
|
cost = 0
|
||||||
custom_only = FALSE
|
custom_only = FALSE
|
||||||
|
var_changes = list(
|
||||||
|
autohiss_basic_map = list(
|
||||||
|
"s" = list("sz", "z", "zz"),
|
||||||
|
"f" = list("zk")
|
||||||
|
),
|
||||||
|
autohiss_extra_map = list(
|
||||||
|
"th" = list("zk", "szk"),
|
||||||
|
"r" = list("rk")
|
||||||
|
),
|
||||||
|
autohiss_exempt = list(LANGUAGE_VESPINAE))
|
||||||
|
excludes = list(
|
||||||
|
/datum/trait/neutral/autohiss_tajaran,
|
||||||
|
/datum/trait/neutral/autohiss_unathi,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat,
|
||||||
|
/datum/trait/neutral/autohiss_yingish,
|
||||||
|
/datum/trait/neutral/autohiss_unathi/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera)
|
||||||
|
|
||||||
|
/datum/trait/neutral/autohiss_yingish
|
||||||
|
name = "Autohiss (Yingish)"
|
||||||
|
desc = "You pronounce th's with a lisp, a bit like zhis!"
|
||||||
|
cost = 0
|
||||||
|
custom_only = FALSE
|
||||||
|
var_changes = list(
|
||||||
|
autohiss_basic_map = list(
|
||||||
|
"thi" = list("z"),
|
||||||
|
"shi" = list("z"),
|
||||||
|
"tha" = list("z"),
|
||||||
|
"tho" = list("z")
|
||||||
|
),
|
||||||
|
autohiss_extra_map = list(
|
||||||
|
"the" = list("z"),
|
||||||
|
"so" = list("z")
|
||||||
|
),
|
||||||
|
autohiss_exempt = list())
|
||||||
|
excludes = list(
|
||||||
|
/datum/trait/neutral/autohiss_tajaran,
|
||||||
|
/datum/trait/neutral/autohiss_unathi,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian,
|
||||||
|
/datum/trait/neutral/autohiss_unathi/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera)
|
||||||
|
|
||||||
/datum/trait/neutral/bloodsucker
|
/datum/trait/neutral/bloodsucker
|
||||||
name = "Bloodsucker, Obligate"
|
name = "Bloodsucker, Obligate"
|
||||||
@@ -1479,7 +1559,16 @@
|
|||||||
"x" = list("ks", "kss", "ksss")
|
"x" = list("ks", "kss", "ksss")
|
||||||
),
|
),
|
||||||
autohiss_exempt = list("Sinta'unathi"))
|
autohiss_exempt = list("Sinta'unathi"))
|
||||||
excludes = list(/datum/trait/neutral/autohiss_tajaran)
|
excludes = list(
|
||||||
|
/datum/trait/neutral/autohiss_unathi,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian,
|
||||||
|
/datum/trait/neutral/autohiss_yingish,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera)
|
||||||
|
|
||||||
/datum/trait/neutral/autohiss_tajaran/xenochimera
|
/datum/trait/neutral/autohiss_tajaran/xenochimera
|
||||||
sort = TRAIT_SORT_SPECIES
|
sort = TRAIT_SORT_SPECIES
|
||||||
@@ -1493,4 +1582,101 @@
|
|||||||
"r" = list("rr", "rrr", "rrrr")
|
"r" = list("rr", "rrr", "rrrr")
|
||||||
),
|
),
|
||||||
autohiss_exempt = list("Siik"))
|
autohiss_exempt = list("Siik"))
|
||||||
excludes = list(/datum/trait/neutral/autohiss_unathi)
|
excludes = list(
|
||||||
|
/datum/trait/neutral/autohiss_unathi,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian,
|
||||||
|
/datum/trait/neutral/autohiss_yingish,
|
||||||
|
/datum/trait/neutral/autohiss_unathi/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera)
|
||||||
|
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera
|
||||||
|
sort = TRAIT_SORT_SPECIES
|
||||||
|
allowed_species = list(SPECIES_XENOCHIMERA)
|
||||||
|
name = "Xenochimera: Autohiss (Zaddat)"
|
||||||
|
desc = "You buzz your S's and F's."
|
||||||
|
cost = 0
|
||||||
|
custom_only = FALSE
|
||||||
|
var_changes = list(
|
||||||
|
autohiss_basic_map = list(
|
||||||
|
"f" = list("v","vh"),
|
||||||
|
"ph" = list("v", "vh")
|
||||||
|
),
|
||||||
|
autohiss_extra_map = list(
|
||||||
|
"s" = list("z", "zz", "zzz"),
|
||||||
|
"ce" = list("z", "zz"),
|
||||||
|
"ci" = list("z", "zz"),
|
||||||
|
"v" = list("vv", "vvv")
|
||||||
|
),
|
||||||
|
autohiss_exempt = list(LANGUAGE_ZADDAT,LANGUAGE_VESPINAE))
|
||||||
|
excludes = list(
|
||||||
|
/datum/trait/neutral/autohiss_tajaran,
|
||||||
|
/datum/trait/neutral/autohiss_unathi,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian,
|
||||||
|
/datum/trait/neutral/autohiss_yingish,
|
||||||
|
/datum/trait/neutral/autohiss_unathi/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera)
|
||||||
|
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera
|
||||||
|
sort = TRAIT_SORT_SPECIES
|
||||||
|
allowed_species = list(SPECIES_XENOCHIMERA)
|
||||||
|
name = "Xenochimera: Autohiss (Vassilian)"
|
||||||
|
desc = "You buzz your S's, F's, Th's, and R's."
|
||||||
|
cost = 0
|
||||||
|
custom_only = FALSE
|
||||||
|
var_changes = list(
|
||||||
|
autohiss_basic_map = list(
|
||||||
|
"s" = list("sz", "z", "zz"),
|
||||||
|
"f" = list("zk")
|
||||||
|
),
|
||||||
|
autohiss_extra_map = list(
|
||||||
|
"th" = list("zk", "szk"),
|
||||||
|
"r" = list("rk")
|
||||||
|
),
|
||||||
|
autohiss_exempt = list(LANGUAGE_VESPINAE))
|
||||||
|
excludes = list(
|
||||||
|
/datum/trait/neutral/autohiss_tajaran,
|
||||||
|
/datum/trait/neutral/autohiss_unathi,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian,
|
||||||
|
/datum/trait/neutral/autohiss_yingish,
|
||||||
|
/datum/trait/neutral/autohiss_unathi/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera)
|
||||||
|
|
||||||
|
/datum/trait/neutral/autohiss_yingish/xenochimera
|
||||||
|
sort = TRAIT_SORT_SPECIES
|
||||||
|
allowed_species = list(SPECIES_XENOCHIMERA)
|
||||||
|
name = "Xenochimera: Autohiss (Yingish)"
|
||||||
|
desc = "You pronounce th's with a lisp, a bit like zhis!"
|
||||||
|
cost = 0
|
||||||
|
custom_only = FALSE
|
||||||
|
var_changes = list(
|
||||||
|
autohiss_basic_map = list(
|
||||||
|
"thi" = list("z"),
|
||||||
|
"shi" = list("z"),
|
||||||
|
"tha" = list("z"),
|
||||||
|
"tho" = list("z")
|
||||||
|
),
|
||||||
|
autohiss_extra_map = list(
|
||||||
|
"the" = list("z"),
|
||||||
|
"so" = list("z")
|
||||||
|
),
|
||||||
|
autohiss_exempt = list())
|
||||||
|
excludes = list(
|
||||||
|
/datum/trait/neutral/autohiss_tajaran,
|
||||||
|
/datum/trait/neutral/autohiss_unathi,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian,
|
||||||
|
/datum/trait/neutral/autohiss_yingish,
|
||||||
|
/datum/trait/neutral/autohiss_unathi/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_tajaran/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_zaddat/xenochimera,
|
||||||
|
/datum/trait/neutral/autohiss_vassilian/xenochimera)
|
||||||
|
|||||||
@@ -84,24 +84,6 @@
|
|||||||
desc = "You will eat anything instantly, in one bite."
|
desc = "You will eat anything instantly, in one bite."
|
||||||
cost = 0
|
cost = 0
|
||||||
var_changes = list("bite_mod" = 16) // Setting this intentionally ridiculously high, so anything will overflow and be eaten in one go.
|
var_changes = list("bite_mod" = 16) // Setting this intentionally ridiculously high, so anything will overflow and be eaten in one go.
|
||||||
custom_only = FALSE
|
|
||||||
|
|
||||||
// CHOMPNote: Moving YW additions here, to sync our files better with VORE in the event of edits.
|
|
||||||
/datum/trait/neutral/autohiss_vassilian
|
|
||||||
name = "Autohiss (Vassilian)"
|
|
||||||
desc = "You buzz your S's, F's, Th's, and R's."
|
|
||||||
cost = 0
|
|
||||||
var_changes = list(
|
|
||||||
autohiss_basic_map = list(
|
|
||||||
"s" = list("sz", "z", "zz"),
|
|
||||||
"f" = list("zk")
|
|
||||||
),
|
|
||||||
autohiss_extra_map = list(
|
|
||||||
"th" = list("zk", "szk"),
|
|
||||||
"r" = list("rk")
|
|
||||||
),
|
|
||||||
autohiss_exempt = list("Vespinae"))
|
|
||||||
excludes = list(/datum/trait/neutral/autohiss_tajaran, /datum/trait/neutral/autohiss_unathi)
|
|
||||||
|
|
||||||
/datum/trait/neutral/slip_reflex
|
/datum/trait/neutral/slip_reflex
|
||||||
name ="Slippery Reflexes"
|
name ="Slippery Reflexes"
|
||||||
|
|||||||
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
|
||||||
@@ -4742,6 +4742,7 @@
|
|||||||
#include "code\modules\xenobio\machinery\processor.dm"
|
#include "code\modules\xenobio\machinery\processor.dm"
|
||||||
#include "code\modules\xgm\xgm_gas_data.dm"
|
#include "code\modules\xgm\xgm_gas_data.dm"
|
||||||
#include "code\modules\xgm\xgm_gas_mixture.dm"
|
#include "code\modules\xgm\xgm_gas_mixture.dm"
|
||||||
|
#include "code\unit_tests\authohiss_tests.dm"
|
||||||
#include "code\unit_tests\clothing_tests.dm"
|
#include "code\unit_tests\clothing_tests.dm"
|
||||||
#include "code\unit_tests\cosmetic_tests.dm"
|
#include "code\unit_tests\cosmetic_tests.dm"
|
||||||
#include "code\unit_tests\decl_tests.dm"
|
#include "code\unit_tests\decl_tests.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user