mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
497 lines
14 KiB
Plaintext
497 lines
14 KiB
Plaintext
/**
|
|
* VOREStation global lists
|
|
*/
|
|
|
|
var/global/list/ear_styles_list = list() // Stores /datum/sprite_accessory/ears indexed by type
|
|
var/global/list/hair_accesories_list= list()// Stores /datum/sprite_accessory/hair_accessory indexed by type
|
|
var/global/list/tail_styles_list = list() // Stores /datum/sprite_accessory/tail indexed by type
|
|
var/global/list/wing_styles_list = list() // Stores /datum/sprite_accessory/wing indexed by type
|
|
var/global/list/negative_traits = list() // Negative custom species traits, indexed by path
|
|
var/global/list/neutral_traits = list() // Neutral custom species traits, indexed by path
|
|
var/global/list/everyone_traits = list() // Neutral traits available to all species, indexed by path
|
|
var/global/list/positive_traits = list() // Positive custom species traits, indexed by path
|
|
var/global/list/traits_costs = list() // Just path = cost list, saves time in char setup
|
|
var/global/list/all_traits = list() // All of 'em at once (same instances)
|
|
|
|
var/global/list/sensorpreflist = list("Off", "Binary", "Vitals", "Tracking", "No Preference") //TFF 5/8/19 - Suit Sensors global list
|
|
|
|
var/global/list/custom_species_bases = list() // Species that can be used for a Custom Species icon base
|
|
|
|
//stores numeric player size options indexed by name
|
|
var/global/list/player_sizes_list = list(
|
|
"Macro" = RESIZE_HUGE,
|
|
"Big" = RESIZE_BIG,
|
|
"Normal" = RESIZE_NORMAL,
|
|
"Small" = RESIZE_SMALL,
|
|
"Tiny" = RESIZE_TINY)
|
|
|
|
//stores vantag settings indexed by name
|
|
var/global/list/vantag_choices_list = list(
|
|
VANTAG_NONE = "No Involvement",
|
|
VANTAG_VORE = "Be Prey",
|
|
VANTAG_KIDNAP = "Be Kidnapped",
|
|
VANTAG_KILL = "Be Killed")
|
|
|
|
//Blacklist to exclude items from object ingestion. Digestion blacklist located in digest_act_vr.dm
|
|
var/global/list/item_vore_blacklist = list(
|
|
/obj/item/weapon/hand_tele,
|
|
/obj/item/weapon/card/id/gold/captain/spare,
|
|
/obj/item/weapon/gun,
|
|
/obj/item/weapon/pinpointer,
|
|
/obj/item/clothing/shoes/magboots,
|
|
/obj/item/blueprints,
|
|
/obj/item/clothing/head/helmet/space,
|
|
/obj/item/weapon/disk/nuclear,
|
|
/obj/item/clothing/suit/storage/hooded/wintercoat/roiz)
|
|
|
|
//Classic Vore sounds
|
|
var/global/list/classic_vore_sounds = list(
|
|
"Gulp" = 'sound/vore/gulp.ogg',
|
|
"Insert" = 'sound/vore/insert.ogg',
|
|
"Insertion1" = 'sound/vore/insertion1.ogg',
|
|
"Insertion2" = 'sound/vore/insertion2.ogg',
|
|
"Insertion3" = 'sound/vore/insertion3.ogg',
|
|
"Schlorp" = 'sound/vore/schlorp.ogg',
|
|
"Squish1" = 'sound/vore/squish1.ogg',
|
|
"Squish2" = 'sound/vore/squish2.ogg',
|
|
"Squish3" = 'sound/vore/squish3.ogg',
|
|
"Squish4" = 'sound/vore/squish4.ogg',
|
|
"Rustle (cloth)" = 'sound/effects/rustle1.ogg',
|
|
"Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg',
|
|
"Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg',
|
|
"Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg',
|
|
"Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg',
|
|
"None" = null)
|
|
|
|
var/global/list/classic_release_sounds = list(
|
|
"Rustle (cloth)" = 'sound/effects/rustle1.ogg',
|
|
"Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg',
|
|
"Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg',
|
|
"Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg',
|
|
"Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg',
|
|
"Splatter" = 'sound/effects/splat.ogg',
|
|
"None" = null
|
|
)
|
|
|
|
//Poojy's Fancy Sounds
|
|
var/global/list/fancy_vore_sounds = list(
|
|
"Gulp" = 'sound/vore/sunesound/pred/swallow_01.ogg',
|
|
"Swallow" = 'sound/vore/sunesound/pred/swallow_02.ogg',
|
|
"Insertion1" = 'sound/vore/sunesound/pred/insertion_01.ogg',
|
|
"Insertion2" = 'sound/vore/sunesound/pred/insertion_02.ogg',
|
|
"Tauric Swallow" = 'sound/vore/sunesound/pred/taurswallow.ogg',
|
|
"Stomach Move" = 'sound/vore/sunesound/pred/stomachmove.ogg',
|
|
"Schlorp" = 'sound/vore/sunesound/pred/schlorp.ogg',
|
|
"Squish1" = 'sound/vore/sunesound/pred/squish_01.ogg',
|
|
"Squish2" = 'sound/vore/sunesound/pred/squish_02.ogg',
|
|
"Squish3" = 'sound/vore/sunesound/pred/squish_03.ogg',
|
|
"Squish4" = 'sound/vore/sunesound/pred/squish_04.ogg',
|
|
"Rustle (cloth)" = 'sound/effects/rustle1.ogg',
|
|
"Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg',
|
|
"Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg',
|
|
"Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg',
|
|
"Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg',
|
|
"None" = null
|
|
)
|
|
|
|
var/global/list/fancy_release_sounds = list(
|
|
"Rustle (cloth)" = 'sound/effects/rustle1.ogg',
|
|
"Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg',
|
|
"Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg',
|
|
"Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg',
|
|
"Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg',
|
|
"Stomach Move" = 'sound/vore/sunesound/pred/stomachmove.ogg',
|
|
"Pred Escape" = 'sound/vore/sunesound/pred/escape.ogg',
|
|
"Splatter" = 'sound/effects/splat.ogg',
|
|
"None" = null
|
|
)
|
|
|
|
var/global/list/global_vore_egg_types = list(
|
|
"Unathi" = UNATHI_EGG,
|
|
"Tajaran" = TAJARAN_EGG,
|
|
"Akula" = AKULA_EGG,
|
|
"Skrell" = SKRELL_EGG,
|
|
"Nevrean" = NEVREAN_EGG,
|
|
"Sergal" = SERGAL_EGG,
|
|
"Human" = HUMAN_EGG,
|
|
"Slime" = SLIME_EGG,
|
|
"Egg" = EGG_EGG,
|
|
"Xenochimera" = XENOCHIMERA_EGG,
|
|
"Xenomorph" = XENOMORPH_EGG)
|
|
|
|
var/global/list/tf_vore_egg_types = list(
|
|
"Unathi" = /obj/structure/closet/secure_closet/egg/unathi,
|
|
"Tajara" = /obj/structure/closet/secure_closet/egg/tajaran,
|
|
"Akula" = /obj/structure/closet/secure_closet/egg/shark,
|
|
"Skrell" = /obj/structure/closet/secure_closet/egg/skrell,
|
|
"Sergal" = /obj/structure/closet/secure_closet/egg/sergal,
|
|
"Nevrean" = /obj/structure/closet/secure_closet/egg/nevrean,
|
|
"Human" = /obj/structure/closet/secure_closet/egg/human,
|
|
"Slime" = /obj/structure/closet/secure_closet/egg/slime,
|
|
"Egg" = /obj/structure/closet/secure_closet/egg,
|
|
"Xenochimera" = /obj/structure/closet/secure_closet/egg/scree,
|
|
"Xenomorph" = /obj/structure/closet/secure_closet/egg/xenomorph)
|
|
|
|
var/global/list/edible_trash = list(/obj/item/broken_device,
|
|
/obj/item/clothing/accessory/collar, //TFF 10/7/19 - add option to nom collars,
|
|
/obj/item/device/communicator, //TFF 19/9/19 - add option to nom communicators and commwatches,
|
|
/obj/item/clothing/mask,
|
|
/obj/item/clothing/glasses,
|
|
/obj/item/clothing/gloves,
|
|
/obj/item/clothing/head,
|
|
/obj/item/clothing/shoes,
|
|
/obj/item/device/aicard,
|
|
/obj/item/device/flashlight,
|
|
/obj/item/device/mmi/digital/posibrain,
|
|
/obj/item/device/paicard,
|
|
/obj/item/device/pda,
|
|
/obj/item/device/radio/headset,
|
|
/obj/item/device/starcaster_news, //chompstation addition
|
|
/obj/item/inflatable/torn,
|
|
/obj/item/organ,
|
|
/obj/item/stack/material/cardboard,
|
|
/obj/item/toy,
|
|
/obj/item/trash,
|
|
/obj/item/weapon/digestion_remains,
|
|
/obj/item/weapon/bananapeel,
|
|
/obj/item/weapon/bone,
|
|
/obj/item/weapon/broken_bottle,
|
|
/obj/item/weapon/card/emag_broken,
|
|
/obj/item/trash/cigbutt,
|
|
/obj/item/weapon/circuitboard/broken,
|
|
/obj/item/weapon/clipboard,
|
|
/obj/item/weapon/corncob,
|
|
/obj/item/weapon/dice,
|
|
/obj/item/weapon/flame,
|
|
/obj/item/weapon/light,
|
|
/obj/item/weapon/lipstick,
|
|
/obj/item/weapon/material/shard,
|
|
/obj/item/weapon/newspaper,
|
|
/obj/item/weapon/paper,
|
|
/obj/item/weapon/paperplane,
|
|
/obj/item/weapon/pen,
|
|
/obj/item/weapon/photo,
|
|
/obj/item/weapon/reagent_containers/food,
|
|
/obj/item/weapon/reagent_containers/glass/rag,
|
|
/obj/item/weapon/soap,
|
|
/obj/item/weapon/spacecash,
|
|
/obj/item/weapon/storage/box/khcrystal,
|
|
/obj/item/weapon/storage/box/matches,
|
|
/obj/item/weapon/storage/box/wings,
|
|
/obj/item/weapon/storage/fancy/candle_box,
|
|
/obj/item/weapon/storage/fancy/cigarettes,
|
|
/obj/item/weapon/storage/fancy/crayons,
|
|
/obj/item/weapon/storage/fancy/egg_box,
|
|
/obj/item/weapon/storage/wallet,
|
|
/obj/item/weapon/material/kitchen) //chompstation addition
|
|
|
|
var/global/list/contamination_flavors = list(
|
|
"Generic" = contamination_flavors_generic,
|
|
"Acrid" = contamination_flavors_acrid,
|
|
"Dirty" = contamination_flavors_dirty,
|
|
"Musky" = contamination_flavors_musky,
|
|
"Smelly" = contamination_flavors_smelly,
|
|
"Wet" = contamination_flavors_wet)
|
|
|
|
var/global/list/contamination_flavors_generic = list("acrid",
|
|
"bedraggled",
|
|
"begrimed",
|
|
"churned",
|
|
"contaminated",
|
|
"cruddy",
|
|
"damp",
|
|
"digested",
|
|
"dirty",
|
|
"disgusting",
|
|
"drenched",
|
|
"drippy",
|
|
"filthy",
|
|
"foul",
|
|
"funky",
|
|
"gloppy",
|
|
"gooey",
|
|
"grimy",
|
|
"gross",
|
|
"gruesome",
|
|
"gunky",
|
|
"icky",
|
|
"juicy",
|
|
"messy",
|
|
"mucky",
|
|
"mushy",
|
|
"nasty",
|
|
"noxious",
|
|
"oozing",
|
|
"pungent",
|
|
"putrescent",
|
|
"putrid",
|
|
"repulsive",
|
|
"saucy",
|
|
"slimy",
|
|
"sloppy",
|
|
"sloshed",
|
|
"sludgy",
|
|
"smeary",
|
|
"smelly",
|
|
"smudgy",
|
|
"smutty",
|
|
"soaked",
|
|
"soggy",
|
|
"soiled",
|
|
"sopping",
|
|
"squashy",
|
|
"squishy",
|
|
"stained",
|
|
"sticky",
|
|
"stinky",
|
|
"tainted",
|
|
"tarnished",
|
|
"unclean",
|
|
"unsanitary",
|
|
"unsavory",
|
|
"yucky")
|
|
|
|
var/global/list/contamination_flavors_wet = list("damp",
|
|
"drenched",
|
|
"drippy",
|
|
"gloppy",
|
|
"gooey",
|
|
"juicy",
|
|
"oozing",
|
|
"slimy",
|
|
"slobbery",
|
|
"sloppy",
|
|
"sloshed",
|
|
"sloughy",
|
|
"sludgy",
|
|
"slushy",
|
|
"soaked",
|
|
"soggy",
|
|
"sopping",
|
|
"squashy",
|
|
"squishy",
|
|
"sticky")
|
|
|
|
var/global/list/contamination_flavors_smelly = list("disgusting",
|
|
"filthy",
|
|
"foul",
|
|
"funky",
|
|
"gross",
|
|
"icky",
|
|
"malodorous",
|
|
"nasty",
|
|
"niffy",
|
|
"noxious",
|
|
"pungent",
|
|
"putrescent",
|
|
"putrid",
|
|
"rancid",
|
|
"reeking",
|
|
"repulsive",
|
|
"smelly",
|
|
"stenchy",
|
|
"stinky",
|
|
"unsavory",
|
|
"whiffy",
|
|
"yucky")
|
|
|
|
var/global/list/contamination_flavors_acrid = list("acrid",
|
|
"caustic",
|
|
"churned",
|
|
"chymous",
|
|
"digested",
|
|
"discolored",
|
|
"disgusting",
|
|
"drippy",
|
|
"foul",
|
|
"gloppy",
|
|
"gooey",
|
|
"grimy",
|
|
"gross",
|
|
"gruesome",
|
|
"icky",
|
|
"mucky",
|
|
"mushy",
|
|
"nasty",
|
|
"noxious",
|
|
"oozing",
|
|
"pungent",
|
|
"putrescent",
|
|
"putrid",
|
|
"repulsive",
|
|
"saucy",
|
|
"slimy",
|
|
"sloppy",
|
|
"sloshed",
|
|
"sludgy",
|
|
"slushy",
|
|
"smelly",
|
|
"smudgy",
|
|
"soupy",
|
|
"squashy",
|
|
"squishy",
|
|
"stained",
|
|
"sticky",
|
|
"tainted",
|
|
"unsavory",
|
|
"yucky")
|
|
|
|
var/global/list/contamination_flavors_dirty = list("bedraggled",
|
|
"begrimed",
|
|
"besmirched",
|
|
"blemished",
|
|
"contaminated",
|
|
"cruddy",
|
|
"dirty",
|
|
"discolored",
|
|
"filthy",
|
|
"gloppy",
|
|
"gooey",
|
|
"grimy",
|
|
"gross",
|
|
"grubby",
|
|
"gruesome",
|
|
"gunky",
|
|
"messy",
|
|
"mucky",
|
|
"mushy",
|
|
"nasty",
|
|
"saucy",
|
|
"slimy",
|
|
"sloppy",
|
|
"sludgy",
|
|
"smeary",
|
|
"smudgy",
|
|
"smutty",
|
|
"soiled",
|
|
"stained",
|
|
"sticky",
|
|
"tainted",
|
|
"tarnished",
|
|
"unclean",
|
|
"unsanitary",
|
|
"unsavory")
|
|
|
|
var/global/list/contamination_flavors_musky = list("drenched",
|
|
"drippy",
|
|
"funky",
|
|
"gooey",
|
|
"juicy",
|
|
"messy",
|
|
"musky",
|
|
"nasty",
|
|
"raunchy",
|
|
"saucy",
|
|
"slimy",
|
|
"sloppy",
|
|
"slushy",
|
|
"smeary",
|
|
"smelly",
|
|
"smutty",
|
|
"soggy",
|
|
"squashy",
|
|
"squishy",
|
|
"sticky",
|
|
"tainted")
|
|
|
|
var/global/list/contamination_colors = list("green",
|
|
"white",
|
|
"black",
|
|
"grey",
|
|
"yellow",
|
|
"red",
|
|
"blue",
|
|
"orange",
|
|
"purple",
|
|
"lime",
|
|
"brown",
|
|
"darkred",
|
|
"cyan",
|
|
"beige",
|
|
"pink")
|
|
|
|
//For the mechanic of leaving remains. Ones listed below are basically ones that got no bones or leave no trace after death.
|
|
var/global/list/remainless_species = list(SPECIES_PROMETHEAN,
|
|
SPECIES_DIONA,
|
|
SPECIES_ALRAUNE,
|
|
SPECIES_PROTEAN,
|
|
SPECIES_MONKEY, //Exclude all monkey subtypes, to prevent abuse of it. They aren't,
|
|
SPECIES_MONKEY_TAJ, //set to have remains anyway, but making double sure,
|
|
SPECIES_MONKEY_SKRELL,
|
|
SPECIES_MONKEY_UNATHI,
|
|
SPECIES_MONKEY_AKULA,
|
|
SPECIES_MONKEY_NEVREAN,
|
|
SPECIES_MONKEY_SERGAL,
|
|
SPECIES_MONKEY_VULPKANIN,
|
|
SPECIES_XENO, //Same for xenos,
|
|
SPECIES_XENO_DRONE,
|
|
SPECIES_XENO_HUNTER,
|
|
SPECIES_XENO_SENTINEL,
|
|
SPECIES_XENO_QUEEN,
|
|
SPECIES_SHADOW,
|
|
SPECIES_GOLEM, //Some special species that may or may not be ever used in event too,
|
|
SPECIES_SHADEKIN) //Shadefluffers just poof away
|
|
|
|
/var/global/list/existing_solargrubs = list()
|
|
|
|
/hook/startup/proc/init_vore_datum_ref_lists()
|
|
var/paths
|
|
|
|
// Custom Ears
|
|
paths = typesof(/datum/sprite_accessory/ears) - /datum/sprite_accessory/ears
|
|
for(var/path in paths)
|
|
var/obj/item/clothing/head/instance = new path()
|
|
ear_styles_list[path] = instance
|
|
|
|
// Custom Tails
|
|
paths = typesof(/datum/sprite_accessory/tail) - /datum/sprite_accessory/tail - /datum/sprite_accessory/tail/taur
|
|
for(var/path in paths)
|
|
var/datum/sprite_accessory/tail/instance = new path()
|
|
tail_styles_list[path] = instance
|
|
|
|
// Custom Wings
|
|
paths = typesof(/datum/sprite_accessory/wing) - /datum/sprite_accessory/wing
|
|
for(var/path in paths)
|
|
var/datum/sprite_accessory/wing/instance = new path()
|
|
wing_styles_list[path] = instance
|
|
|
|
// Custom Hair Accessories
|
|
paths = typesof(/datum/sprite_accessory/hair_accessory) - /datum/sprite_accessory/hair_accessory
|
|
for(var/path in paths)
|
|
var/datum/sprite_accessory/hair_accessory/instance = new path()
|
|
hair_accesories_list[path] = instance
|
|
|
|
// Custom species traits
|
|
paths = typesof(/datum/trait) - /datum/trait
|
|
for(var/path in paths)
|
|
var/datum/trait/instance = new path()
|
|
if(!instance.name)
|
|
continue //A prototype or something
|
|
var/cost = instance.cost
|
|
traits_costs[path] = cost
|
|
all_traits[path] = instance
|
|
switch(cost)
|
|
if(-INFINITY to -0.1)
|
|
negative_traits[path] = instance
|
|
if(0)
|
|
neutral_traits[path] = instance
|
|
if(!(instance.custom_only))
|
|
everyone_traits[path] = instance
|
|
if(0.1 to INFINITY)
|
|
positive_traits[path] = instance
|
|
|
|
// Custom species icon bases
|
|
var/list/blacklisted_icons = list(SPECIES_CUSTOM,SPECIES_PROMETHEAN) //Just ones that won't work well.
|
|
var/list/whitelisted_icons = list(SPECIES_FENNEC,SPECIES_XENOHYBRID) //Include these anyway
|
|
for(var/species_name in GLOB.playable_species)
|
|
if(species_name in blacklisted_icons)
|
|
continue
|
|
var/datum/species/S = GLOB.all_species[species_name]
|
|
if(S.spawn_flags & SPECIES_IS_WHITELISTED)
|
|
continue
|
|
custom_species_bases += species_name
|
|
for(var/species_name in whitelisted_icons)
|
|
custom_species_bases += species_name
|
|
|
|
return 1 // Hooks must return 1
|