Files
fulpstation/code/_globalvars/phobias.dm
A miscellaneous Fern f3397e3136 January TGU - First Draft (#879)
* Update beefman.dm

* Update beefman.dm

* xsaxsfvvvvvvvv

* Update shaded_bloodsucker.dm

* yeah that thing

* FUCK you

* Update hunting_contract.dm

* dd

* vdvdfv

* Update monsterhunter_weapons.dm

* Update whiterabbit.dm

* onokkn

* Update monsterhunter_weapons.dm

* Update monsterhunter_weapons.dm

* efe

* Update whiterabbit.dm

* yeaywa

* Update red_rabbit.dmi

* oihop

* Update HunterContract.js

* wonderland.dm

* gs

* dcd

* Update rabbit.dmi

* ass

* fvd

* Update paradox_rabbit.dm

* f

* Update tgstation.dme

* Delete heartbeatmoon.dmi

* shtntb

* sed

* sfe

* Update monsterhunter_weapons.dm

* cdc

* Update wonderland.dm

* dgrd

* wef

* b

* pipkk

* Update hunting_contract.dm

* Update paradox_rabbit.dm

* wr

* Update worn_mask.dmi

* some documenting

* Update areas.dm

* eg

* Update white_rabbit.dm

* Update HunterContract.js

* s

* Update weapons.dmi

* Update weapons.dmi

* Jack in the bomb

* some signals

* ui

* h

* y

* music

* Update wonderlandmusic.ogg

* f

* v

* cleanups

* g

* a

* t

* y

* g

* a

* o

* first commit

* Adding our stuff back in

* k

* Before procs

* proc refs

* carps

* Fixes

* shuttles

* dumb dumb names

* I hate windows I hate windows

* I hate windows I hate windows

* h

* Selenestation has issues

* Update monsterhunter_weapons.dm

* eretics

* Update weapons.dmi

* Update monsterhunter_weapons.dm

* g

* kpop

* r

* m

* grgr

* Update simple_animal_freeze.dm

* Update wonderland_apocalypse.dm

* Update wonderland_apocalypse.dm

* d

* Update fulp_defines.dm

* ff

* Update wonderland.dmm

* Update tgstation.dme

* Update infil_objectives.dm

* Update infil_objectives.dm

* Update monsterhunter_weapons.dm

* Update monsterhunter_event.dm

* Update monsterhunter_event.dm

* Update areas.dm

* Update monsterhunter_event.dm

* Update monsterhunter_weapons.dm

* Step 0, version 2

* step 0.5 - version 2

* step 1 - version 2

* 2.5 version 2

* fix

* Mapping

* okay fine

* more mapping

* uuuuu
hhhh

* fixes

* help me

* hurry

* I'm killing the mf that did access helpers on this map

* Welp, we lost.

* Or did we?

---------

Co-authored-by: SmoSmoSmoSmok <95004236+SmoSmoSmoSmok@users.noreply.github.com>
Co-authored-by: Pepsilawn <reisenrui@gmail.com>
Co-authored-by: SgtHunk <68669754+SgtHunk@users.noreply.github.com>
2023-02-01 03:57:55 -03:00

546 lines
18 KiB
Plaintext

#define PHOBIA_FILE "phobia.json"
/// Phobia types that can be pulled randomly for brain traumas.
/// Also determines what phobias you can choose as your preference with the quirk.
GLOBAL_LIST_INIT(phobia_types, sort_list(list(
"aliens",
"anime",
"authority",
"birds",
"blood",
"clowns",
"doctors",
"falling",
"greytide",
"guns",
"insects",
"lizards",
"robots",
"security",
"skeletons",
"snakes",
"space",
"spiders",
"strangers",
"the supernatural",
)))
GLOBAL_LIST_INIT(phobia_regexes, list(
"aliens" = construct_phobia_regex("aliens"),
"anime" = construct_phobia_regex("anime"),
"authority" = construct_phobia_regex("authority"),
"birds" = construct_phobia_regex("birds"),
"clowns" = construct_phobia_regex("clowns"),
"conspiracies" = construct_phobia_regex("conspiracies"),
"doctors" = construct_phobia_regex("doctors"),
"falling" = construct_phobia_regex("falling"),
"greytide" = construct_phobia_regex("greytide"),
"guns" = construct_phobia_regex("guns"),
"insects" = construct_phobia_regex("insects"),
"lizards" = construct_phobia_regex("lizards"),
"ocky icky" = construct_phobia_regex("ocky icky"),
"robots" = construct_phobia_regex("robots"),
"security" = construct_phobia_regex("security"),
"skeletons" = construct_phobia_regex("skeletons"),
"snakes" = construct_phobia_regex("snakes"),
"space" = construct_phobia_regex("space"),
"spiders" = construct_phobia_regex("spiders"),
"strangers" = construct_phobia_regex("strangers"),
"the supernatural" = construct_phobia_regex("the supernatural"),
"blood" = construct_phobia_regex("blood"),
))
GLOBAL_LIST_INIT(phobia_mobs, list(
"spiders" = typecacheof(list(/mob/living/simple_animal/hostile/giant_spider)),
"security" = typecacheof(list(/mob/living/simple_animal/bot/secbot)),
"lizards" = typecacheof(list(/mob/living/simple_animal/hostile/lizard)),
"skeletons" = typecacheof(list(/mob/living/simple_animal/hostile/skeleton)),
"snakes" = typecacheof(list(/mob/living/simple_animal/hostile/retaliate/snake)),
"robots" = typecacheof(list(
/mob/living/silicon/ai,
/mob/living/silicon/robot,
/mob/living/simple_animal/bot,
/mob/living/simple_animal/drone,
)),
"doctors" = typecacheof(list(/mob/living/simple_animal/bot/medbot)),
"the supernatural" = typecacheof(list(
/mob/dead/observer,
/mob/living/simple_animal/bot/mulebot/paranormal,
/mob/living/simple_animal/hostile/construct,
/mob/living/simple_animal/hostile/dark_wizard,
/mob/living/basic/faithless,
/mob/living/simple_animal/hostile/heretic_summon,
/mob/living/simple_animal/hostile/imp,
/mob/living/simple_animal/hostile/retaliate/bat,
/mob/living/basic/ghost,
/mob/living/simple_animal/hostile/skeleton,
/mob/living/simple_animal/hostile/wizard,
/mob/living/simple_animal/hostile/zombie,
/mob/living/simple_animal/revenant,
/mob/living/simple_animal/shade,
)),
"aliens" = typecacheof(list(
/mob/living/carbon/alien,
/mob/living/simple_animal/slime,
)),
"conspiracies" = typecacheof(list(
/mob/living/simple_animal/bot/secbot,
/mob/living/simple_animal/drone,
/mob/living/simple_animal/pet/penguin,
)),
"birds" = typecacheof(list(
/mob/living/simple_animal/chick,
/mob/living/simple_animal/chicken,
/mob/living/simple_animal/parrot,
/mob/living/simple_animal/pet/penguin,
)),
"anime" = typecacheof(list(/mob/living/simple_animal/hostile/guardian)),
"insects" = typecacheof(list(
/mob/living/basic/cockroach,
/mob/living/simple_animal/hostile/bee,
)),
))
GLOBAL_LIST_INIT(phobia_objs, list(
"snakes" = typecacheof(list(
/obj/item/rod_of_asclepius,
/obj/item/toy/plush/snakeplushie,
)),
"spiders" = typecacheof(list(/obj/structure/spider)),
"security" = typecacheof(list(
/obj/effect/client_image_holder/securitron,
/obj/item/clothing/under/rank/security/detective,
/obj/item/clothing/under/rank/security/head_of_security,
/obj/item/clothing/under/rank/security/officer,
/obj/item/clothing/under/rank/security/warden,
/obj/item/gun/energy/taser,
/obj/item/megaphone/sec,
/obj/item/melee/baton,
/obj/item/restraints/handcuffs,
/obj/item/stamp/hos,
/obj/item/toy/figure/hos,
/obj/item/toy/figure/secofficer,
/obj/machinery/door/airlock/security,
/obj/structure/statue/gold/hos,
/obj/structure/statue/silver/sec,
/obj/structure/statue/silver/secborg,
)),
"clowns" = typecacheof(list(
/obj/item/bedsheet/clown,
/obj/item/clothing/head/chaplain/clownmitre,
/obj/item/clothing/mask/gas/clown_hat,
/obj/item/clothing/shoes/clown_shoes,
/obj/item/clothing/suit/chaplainsuit/clownpriest,
/obj/item/clothing/under/plasmaman/clown,
/obj/item/clothing/under/rank/civilian/clown,
/obj/item/food/cheesiehonkers,
/obj/item/food/pie/cream,
/obj/item/grown/bananapeel,
/obj/item/gun/magic/staff/honk,
/obj/item/instrument/bikehorn,
/obj/item/megaphone/clown,
/obj/item/modular_computer/pda/clown,
/obj/item/pneumatic_cannon/pie,
/obj/item/stack/ore/bananium,
/obj/item/stack/tile/mineral/bananium,
/obj/item/stamp/clown,
/obj/item/storage/backpack/clown,
/obj/item/storage/backpack/duffelbag/clown,
/obj/item/storage/backpack/ert/clown,
/obj/item/toy/crayon/rainbow,
/obj/item/toy/mecha/darkhonk,
/obj/item/toy/mecha/honk,
/obj/item/trash/cheesie,
/obj/machinery/door/airlock/bananium,
/obj/structure/falsewall/bananium,
/obj/structure/mecha_wreckage/honker,
/obj/structure/statue/bananium,
/obj/vehicle/sealed/car/clowncar,
/obj/vehicle/sealed/mecha/honker,
)),
"greytide" = (typecacheof(list(
/obj/item/clothing/under/color/grey,
/obj/item/melee/baton/security/cattleprod,
/obj/item/spear,
/obj/item/toy/figure/assistant,
/obj/structure/statue/sandstone/assistant,
)) + typecacheof(list(/obj/item/clothing/mask/gas), ignore_root_path = FALSE, only_root_path = TRUE // to match only specific items in this phobia and not subtypes, use an additional typecacheof w/ ignore_root_path set FALSE and only_root_patch set TRUE
)),
"lizards" = typecacheof(list(
/obj/item/clothing/head/costume/lizard,
/obj/item/clothing/shoes/cowboy/lizard,
/obj/item/food/kebab/tail,
/obj/item/organ/external/tail/lizard,
/obj/item/reagent_containers/cup/glass/bottle/lizardwine,
/obj/item/toy/plush/lizard_plushie,
)),
"skeletons" = typecacheof(list(
/obj/effect/decal/remains/human,
/obj/item/clothing/suit/armor/bone,
/obj/item/food/meat/slab/human/mutant/skeleton,
/obj/item/organ/internal/tongue/bone,
/obj/item/stack/sheet/bone,
)),
"conspiracies" = typecacheof(list(
/obj/item/abductor/gizmo,
/obj/item/abductor/silencer,
/obj/item/clothing/head/helmet/abductor,
/obj/item/clothing/suit/armor/abductor/vest,
/obj/item/clothing/under/rank/captain,
/obj/item/clothing/under/rank/captain/parade,
/obj/item/clothing/under/rank/centcom/officer,
/obj/item/clothing/under/rank/civilian/head_of_personnel,
/obj/item/clothing/under/rank/engineering/chief_engineer,
/obj/item/clothing/under/rank/medical/chief_medical_officer,
/obj/item/clothing/under/rank/rnd/research_director,
/obj/item/clothing/under/rank/rnd/research_director/alt,
/obj/item/clothing/under/rank/rnd/research_director/turtleneck,
/obj/item/clothing/under/rank/security/head_of_security,
/obj/item/clothing/under/rank/security/head_of_security/alt,
/obj/item/clothing/under/rank/security/head_of_security/grey,
/obj/item/clothing/under/rank/security/head_of_security/parade,
/obj/item/clothing/under/rank/security/head_of_security/parade/female,
/obj/item/clothing/under/rank/cargo/qm,
/obj/item/gun/energy/alien,
/obj/item/encryptionkey/heads,
/obj/item/radio/headset/heads,
/obj/item/megaphone/command,
/obj/item/melee/baton/abductor,
/obj/item/stamp/captain,
/obj/item/stamp/ce,
/obj/item/stamp/centcom,
/obj/item/stamp/cmo,
/obj/item/stamp/hop,
/obj/item/stamp/hos,
/obj/item/stamp/rd,
/obj/item/stamp/qm,
/obj/item/storage/belt/military/abductor,
/obj/item/toy/figure/captain,
/obj/item/toy/figure/ce,
/obj/item/toy/figure/cmo,
/obj/item/toy/figure/dsquad,
/obj/item/toy/figure/hop,
/obj/item/toy/figure/hos,
/obj/item/toy/figure/rd,
/obj/item/toy/figure/qm,
/obj/item/toy/plush/abductor,
/obj/item/toy/plush/abductor/agent,
/obj/machinery/atmospherics/miner,
/obj/machinery/door/airlock/centcom,
)),
"robots" = typecacheof(list(
/obj/item/ai_module,
/obj/item/aicard,
/obj/item/toy/figure/borg,
/obj/item/toy/talking/ai,
/obj/machinery/computer/upload,
/obj/machinery/recharge_station,
/obj/structure/statue/diamond/ai1,
/obj/structure/statue/diamond/ai2,
/obj/structure/statue/silver/medborg,
/obj/structure/statue/silver/secborg,
)),
"doctors" = typecacheof(list(
/obj/item/cautery,
/obj/item/circular_saw,
/obj/item/clothing/head/bio_hood/plague,
/obj/item/clothing/mask/gas/plaguedoctor,
/obj/item/clothing/suit/bio_suit/plaguedoctorsuit,
/obj/item/clothing/under/rank/medical,
/obj/item/healthanalyzer,
/obj/item/hemostat,
/obj/item/reagent_containers/hypospray,
/obj/item/reagent_containers/pill/,
/obj/item/reagent_containers/syringe,
/obj/item/retractor,
/obj/item/scalpel,
/obj/item/storage/medkit,
/obj/item/storage/pill_bottle,
/obj/item/surgical_drapes,
/obj/item/surgicaldrill,
/obj/machinery/atmospherics/components/unary/cryo_cell,
/obj/machinery/dna_scannernew,
/obj/machinery/door/airlock/medical,
/obj/machinery/sleeper,
/obj/machinery/stasis,
/obj/structure/sign/departments/medbay,
)),
"authority" = typecacheof(list(
/obj/item/card/id/advanced/centcom,
/obj/item/card/id/advanced/gold,
/obj/item/card/id/advanced/silver,
/obj/item/clothing/under/rank/captain,
/obj/item/clothing/under/rank/centcom/commander,
/obj/item/clothing/under/rank/centcom/officer,
/obj/item/clothing/under/rank/civilian/head_of_personnel,
/obj/item/clothing/under/rank/engineering/chief_engineer,
/obj/item/clothing/under/rank/medical/chief_medical_officer,
/obj/item/clothing/under/rank/rnd/research_director,
/obj/item/clothing/under/rank/security/head_of_security,
/obj/item/clothing/under/rank/cargo/qm,
/obj/item/clothing/neck/cloak/qm,
/obj/item/clothing/neck/cloak/hos,
/obj/item/clothing/neck/cloak/cmo,
/obj/item/clothing/neck/cloak/rd,
/obj/item/clothing/neck/cloak/ce,
/obj/item/clothing/neck/cloak/cap,
/obj/item/clothing/neck/cloak/hop,
/obj/item/clothing/suit/hooded/wintercoat/captain,
/obj/item/clothing/head/hooded/winterhood/engineering/ce,
/obj/item/clothing/suit/hooded/wintercoat/science/rd,
/obj/item/clothing/suit/hooded/wintercoat/hop,
/obj/item/clothing/head/hooded/winterhood/medical/cmo,
/obj/item/clothing/suit/hooded/wintercoat/cargo/qm,
/obj/item/megaphone/command,
/obj/item/encryptionkey/heads,
/obj/item/radio/headset/heads,
/obj/item/melee/baton/telescopic,
/obj/item/stamp/captain,
/obj/item/stamp/ce,
/obj/item/stamp/centcom,
/obj/item/stamp/cmo,
/obj/item/stamp/hop,
/obj/item/stamp/hos,
/obj/item/stamp/rd,
/obj/item/stamp/qm,
/obj/item/toy/figure/captain,
/obj/item/toy/figure/ce,
/obj/item/toy/figure/cmo,
/obj/item/toy/figure/dsquad,
/obj/item/toy/figure/hop,
/obj/item/toy/figure/hos,
/obj/item/toy/figure/rd,
/obj/item/toy/figure/qm,
/obj/machinery/door/airlock/command,
/obj/structure/statue/diamond/captain,
/obj/structure/statue/gold/ce,
/obj/structure/statue/gold/cmo,
/obj/structure/statue/gold/hop,
/obj/structure/statue/gold/hos,
/obj/structure/statue/gold/rd,
/obj/item/bedsheet/captain,
/obj/item/bedsheet/rd,
/obj/item/bedsheet/cmo,
/obj/item/bedsheet/hos,
/obj/item/bedsheet/hop,
/obj/item/bedsheet/ce,
/obj/item/bedsheet/qm
)),
"the supernatural" = typecacheof(list(
/obj/effect/floating_blade,
/obj/effect/heretic_influence,
/obj/effect/heretic_rune,
/obj/effect/rune,
/obj/effect/visible_heretic_influence,
/obj/item/clothing/head/hooded/cult_hoodie,
/obj/item/clothing/head/wizard,
/obj/item/clothing/mask/madness_mask,
/obj/item/clothing/neck/heretic_focus,
/obj/item/clothing/neck/eldritch_amulet,
/obj/item/clothing/suit/hooded/cultrobes,
/obj/item/clothing/suit/wizrobe,
/obj/item/clothing/under/rank/civilian/chaplain,
/obj/item/codex_cicatrix,
/obj/item/cult_bastard,
/obj/item/gun/magic,
/obj/item/melee/cultblade,
/obj/item/melee/rune_carver,
/obj/item/melee/sickly_blade,
/obj/item/necromantic_stone,
/obj/item/nullrod,
/obj/item/restraints/legcuffs/bola/cult,
/obj/item/scrying,
/obj/item/soulstone,
/obj/item/spellbook,
/obj/item/stack/sheet/hauntium,
/obj/item/stack/sheet/runed_metal,
/obj/item/staff,
/obj/item/storage/toolbox/haunted,
/obj/item/tome,
/obj/item/toy/cards/deck/tarot,
/obj/item/toy/eightball/haunted,
/obj/item/toy/eldritch_book,
/obj/item/toy/reality_pierce,
/obj/item/warp_whistle,
/obj/machinery/door/airlock/cult,
/obj/narsie,
/obj/structure/destructible/cult,
/obj/structure/destructible/eldritch_crucible,
/obj/structure/spirit_board,
)),
"aliens" = typecacheof(list(
/obj/item/abductor,
/obj/item/cautery/alien,
/obj/item/circular_saw/alien,
/obj/item/clothing/head/helmet/abductor,
/obj/item/clothing/mask/facehugger,
/obj/item/clothing/suit/armor/abductor,
/obj/item/crowbar/abductor,
/obj/item/gun/energy/alien,
/obj/item/hemostat/alien,
/obj/item/melee/baton/abductor,
/obj/item/organ/internal/body_egg/alien_embryo,
/obj/item/organ/internal/heart/gland,
/obj/item/radio/headset/abductor,
/obj/item/retractor/alien,
/obj/item/scalpel/alien,
/obj/item/screwdriver/abductor,
/obj/item/stack/sheet/mineral/abductor,
/obj/item/surgicaldrill/alien,
/obj/item/toy/toy_xeno,
/obj/item/toy/plush/abductor,
/obj/item/toy/plush/abductor/agent,
/obj/item/weldingtool/abductor,
/obj/item/wirecutters/abductor,
/obj/item/wrench/abductor,
/obj/machinery/abductor,
/obj/structure/alien,
/obj/structure/bed/abductor,
/obj/structure/closet/abductor,
/obj/structure/statue/plasma/xeno,
/obj/structure/table_frame/abductor,
/obj/structure/table/abductor,
/obj/structure/table/optable/abductor,
)),
"anime" = typecacheof(list(
/obj/item/clothing/head/costume/kitty/genuine,
/obj/item/clothing/mask/gas/ninja,
/obj/item/clothing/under/syndicate/ninja,
/obj/item/clothing/under/costume/schoolgirl,
/obj/item/energy_katana,
/obj/item/food/chawanmushi,
/obj/item/food/sashimi,
/obj/item/highfrequencyblade,
/obj/item/katana,
/obj/item/nullrod/claymore/katana,
/obj/item/nullrod/scythe/vibro,
/obj/item/reagent_containers/cup/glass/bottle/sake,
/obj/item/throwing_star,
/obj/item/toy/katana,
/obj/structure/mineral_door/paperframe,
/obj/structure/window/paperframe,
)),
"birds" = typecacheof(list(
/obj/item/clothing/head/costume/chicken,
/obj/item/clothing/head/costume/griffin,
/obj/item/clothing/head/helmet/space/freedom,
/obj/item/clothing/mask/gas/owl_mask,
/obj/item/clothing/mask/gas/plaguedoctor,
/obj/item/clothing/shoes/griffin,
/obj/item/clothing/suit/costume/chickensuit,
/obj/item/clothing/suit/space/freedom,
/obj/item/clothing/suit/toggle/owlwings,
/obj/item/clothing/under/costume/griffin,
/obj/item/clothing/under/costume/owl,
/obj/item/food/cracker,
)),
"guns" = typecacheof(list(
/obj/item/ammo_box,
/obj/item/ammo_casing,
/obj/item/gun/ballistic,
/obj/item/gun/blastcannon,
/obj/item/gun/chem,
/obj/item/gun/energy,
/obj/item/gun/grenadelauncher,
/obj/item/gun/syringe,
/obj/item/mecha_ammo,
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic,
/obj/item/mecha_parts/mecha_equipment/weapon/energy,
/obj/item/storage/belt/bandolier,
/obj/item/storage/belt/holster,
/obj/machinery/porta_turret,
/obj/machinery/power/emitter,
)),
"insects" = typecacheof(list(
/obj/item/clothing/mask/animal/small/bee,
/obj/item/clothing/suit/hooded/bee_costume,
/obj/item/toy/plush/beeplushie,
/obj/item/toy/plush/moth,
/obj/structure/beebox,
)),
"blood" = typecacheof(list(
/obj/effect/decal/cleanable/blood,
/obj/item/reagent_containers/blood,
/obj/item/reagent_containers/syringe,
/obj/machinery/iv_drip,
)),
))
GLOBAL_LIST_INIT(phobia_turfs, list(
"space" = typecacheof(list(
/turf/open/floor/fakespace,
/turf/open/floor/holofloor/space,
/turf/open/space,
)),
"the supernatural" = typecacheof(list(
/turf/closed/wall/mineral/cult,
/turf/open/floor/cult,
)),
"aliens" = typecacheof(list(
/turf/closed/wall/mineral/abductor,
/turf/open/floor/mineral/abductor,
/turf/open/floor/plating/abductor,
/turf/open/floor/plating/abductor2,
)),
"falling" = typecacheof(list(
/turf/open/chasm,
/turf/open/floor/fakepit,
/turf/open/openspace,
)),
))
GLOBAL_LIST_INIT(phobia_species, list(
"aliens" = typecacheof(list(
/datum/species/abductor,
/datum/species/jelly,
/datum/species/pod,
/datum/species/shadow,
)),
"anime" = typecacheof(list(/datum/species/human/felinid)),
"conspiracies" = typecacheof(list(
/datum/species/abductor,
/datum/species/lizard,
)),
"insects" = typecacheof(list(
/datum/species/fly,
/datum/species/moth,
)),
"lizards" = typecacheof(list(/datum/species/lizard)),
"robots" = typecacheof(list(/datum/species/android)),
"skeletons" = typecacheof(list(
/datum/species/plasmaman,
/datum/species/skeleton,
)),
"the supernatural" = typecacheof(list(/datum/species/golem/runic)),
))
/// Creates a regular expression to match against the given phobia
/// Capture group 2 = the scary word
/// Capture group 3 = an optional suffix on the scary word
/proc/construct_phobia_regex(list/name)
var/list/words = strings(PHOBIA_FILE, name)
if(!length(words))
CRASH("phobia [name] has no entries")
var/words_match = ""
for(var/word in words)
words_match += "[REGEX_QUOTE(word)]|"
words_match = copytext(words_match, 1, -1)
return regex("(\\b|\\A)([words_match])('?s*)(\\b|\\|)", "ig")
#undef PHOBIA_FILE