/** * VOREStation global lists */ var/global/list/ear_styles_list = list() // Stores /datum/sprite_accessory/ears 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/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/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/weapon/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/bottle, /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) 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 /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 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(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. for(var/species_name in playable_species) if(species_name in blacklisted_icons) continue var/datum/species/S = all_species[species_name] if(S.spawn_flags & SPECIES_IS_WHITELISTED) continue custom_species_bases += species_name return 1 // Hooks must return 1