Merge branch 'master' into upstream-merge-12767

This commit is contained in:
Nadyr
2022-04-17 23:33:35 -04:00
committed by GitHub
58 changed files with 1247 additions and 57 deletions

View File

@@ -1,6 +1,14 @@
{
"recommendations": [
"gbasood.byond-dm-language-support",
"platymuus.dm-langclient"
"platymuus.dm-langclient",
"stylemistake.auto-comment-blocks",
"eamodio.gitlens",
"oderwat.indent-rainbow",
"rexebin.darkpurple-black",
"dbaeumer.vscode-eslint",
"editorconfig.editorconfig",
"donkie.vscode-tgstation-test-adapter",
"icrawl.discord-vscode"
]
}

121
code/__defines/span_vr.dm Normal file
View File

@@ -0,0 +1,121 @@
// Sorted alphabetically
// Shamelessly yoinked from TGCode, luv u folks
#define span_abductor(str) ("<span class='abductor'>" + str + "</span>")
#define span_admin(str) ("<span class='admin'>" + str + "</span>")
#define span_adminhelp(str) ("<span class='adminhelp'>" + str + "</span>")
#define span_adminnotice(str) ("<span class='adminnotice'>" + str + "</span>")
#define span_adminobserverooc(str) ("<span class='adminobserverooc'>" + str + "</span>")
#define span_adminooc(str) ("<span class='adminooc'>" + str + "</span>")
#define span_adminsay(str) ("<span class='adminsay'>" + str + "</span>")
#define span_aiprivradio(str) ("<span class='aiprivradio'>" + str + "</span>")
#define span_alert(str) ("<span class='alert'>" + str + "</span>")
#define span_alertalien(str) ("<span class='alertalien'>" + str + "</span>")
#define span_alertsyndie(str) ("<span class='alertsyndie'>" + str + "</span>")
#define span_alertwarning(str) ("<span class='alertwarning'>" + str + "</span>")
#define span_alien(str) ("<span class='alien'>" + str + "</span>")
#define span_announce(str) ("<span class='announce'>" + str + "</span>")
#define span_big(str) ("<span class='big'>" + str + "</span>")
#define span_bigicon(str) ("<span class='bigicon'>" + str + "</span>")
#define span_binarysay(str) ("<span class='binarysay'>" + str + "</span>")
#define span_blue(str) ("<span class='blue'>" + str + "</span>")
#define span_blueteamradio(str) ("<span class='blueteamradio'>" + str + "</span>")
#define span_bold(str) ("<span class='bold'>" + str + "</span>")
#define span_boldannounce(str) ("<span class='boldannounce'>" + str + "</span>")
#define span_boldnotice(str) ("<span class='boldnotice'>" + str + "</span>")
#define span_boldwarning(str) ("<span class='boldwarning'>" + str + "</span>")
#define span_centcomradio(str) ("<span class='centcomradio'>" + str + "</span>")
#define span_changeling(str) ("<span class='changeling'>" + str + "</span>")
#define span_clown(str) ("<span class='clown'>" + str + "</span>")
#define span_colossus(str) ("<span class='colossus'>" + str + "</span>")
#define span_command_headset(str) ("<span class='command_headset'>" + str + "</span>")
#define span_comradio(str) ("<span class='comradio'>" + str + "</span>")
#define span_cult(str) ("<span class='cult'>" + str + "</span>")
#define span_cultbold(str) ("<span class='cultbold'>" + str + "</span>")
#define span_cultboldtalic(str) ("<span class='cultboldtalic'>" + str + "</span>")
#define span_cultitalic(str) ("<span class='cultitalic'>" + str + "</span>")
#define span_cultlarge(str) ("<span class='cultlarge'>" + str + "</span>")
#define span_danger(str) ("<span class='danger'>" + str + "</span>")
#define span_deadsay(str) ("<span class='deadsay'>" + str + "</span>")
#define span_deconversion_message(str) ("<span class='deconversion_message'>" + str + "</span>")
#define span_drone(str) ("<span class='drone'>" + str + "</span>")
#define span_engradio(str) ("<span class='engradio'>" + str + "</span>")
#define span_extremelybig(str) ("<span class='extremelybig'>" + str + "</span>")
#define span_ghostalert(str) ("<span class='ghostalert'>" + str + "</span>")
#define span_green(str) ("<span class='green'>" + str + "</span>")
#define span_greenannounce(str) ("<span class='greenannounce'>" + str + "</span>")
#define span_greenteamradio(str) ("<span class='greenteamradio'>" + str + "</span>")
#define span_greentext(str) ("<span class='greentext'>" + str + "</span>")
#define span_hear(str) ("<span class='hear'>" + str + "</span>")
#define span_hidden(str) ("<span class='hidden'>" + str + "</span>")
#define span_hierophant(str) ("<span class='hierophant'>" + str + "</span>")
#define span_hierophant_warning(str) ("<span class='hierophant_warning'>" + str + "</span>")
#define span_highlight(str) ("<span class='highlight'>" + str + "</span>")
#define span_his_grace(str) ("<span class='his_grace'>" + str + "</span>")
#define span_holoparasite(str) ("<span class='holoparasite'>" + str + "</span>")
#define span_hypnophrase(str) ("<span class='hypnophrase'>" + str + "</span>")
#define span_icon(str) ("<span class='icon'>" + str + "</span>")
#define span_info(str) ("<span class='info'>" + str + "</span>")
#define span_interface(str) ("<span class='interface'>" + str + "</span>")
#define span_looc(str) ("<span class='looc'>" + str + "</span>")
#define span_medal(str) ("<span class='medal'>" + str + "</span>")
#define span_medradio(str) ("<span class='medradio'>" + str + "</span>")
#define span_memo(str) ("<span class='memo'>" + str + "</span>")
#define span_memoedit(str) ("<span class='memoedit'>" + str + "</span>")
#define span_mind_control(str) ("<span class='mind_control'>" + str + "</span>")
#define span_minorannounce(str) ("<span class='minorannounce'>" + str + "</span>")
#define span_monkey(str) ("<span class='monkey'>" + str + "</span>")
#define span_monkeyhive(str) ("<span class='monkeyhive'>" + str + "</span>")
#define span_monkeylead(str) ("<span class='monkeylead'>" + str + "</span>")
#define span_name(str) ("<span class='name'>" + str + "</span>")
#define span_narsie(str) ("<span class='narsie'>" + str + "</span>")
#define span_narsiesmall(str) ("<span class='narsiesmall'>" + str + "</span>")
#define span_nicegreen(str) ("<span class='nicegreen'>" + str + "</span>")
#define span_notice(str) ("<span class='notice'>" + str + "</span>")
#define span_noticealien(str) ("<span class='noticealien'>" + str + "</span>")
#define span_ooc(str) ("<span class='ooc'>" + str + "</span>")
#define span_papyrus(str) ("<span class='papyrus'>" + str + "</span>")
#define span_phobia(str) ("<span class='phobia'>" + str + "</span>")
#define span_prefix(str) ("<span class='prefix'>" + str + "</span>")
#define span_purple(str) ("<span class='purple'>" + str + "</span>")
#define span_radio(str) ("<span class='radio'>" + str + "</span>")
#define span_reallybig(str) ("<span class='reallybig'>" + str + "</span>")
#define span_red(str) ("<span class='red'>" + str + "</span>")
#define span_redteamradio(str) ("<span class='redteamradio'>" + str + "</span>")
#define span_redtext(str) ("<span class='redtext'>" + str + "</span>")
#define span_resonate(str) ("<span class='resonate'>" + str + "</span>")
#define span_revenbignotice(str) ("<span class='revenbignotice'>" + str + "</span>")
#define span_revenboldnotice(str) ("<span class='revenboldnotice'>" + str + "</span>")
#define span_revendanger(str) ("<span class='revendanger'>" + str + "</span>")
#define span_revenminor(str) ("<span class='revenminor'>" + str + "</span>")
#define span_revennotice(str) ("<span class='revennotice'>" + str + "</span>")
#define span_revenwarning(str) ("<span class='revenwarning'>" + str + "</span>")
#define span_robot(str) ("<span class='robot'>" + str + "</span>")
#define span_rose(str) ("<span class='rose'>" + str + "</span>")
#define span_sans(str) ("<span class='sans'>" + str + "</span>")
#define span_sciradio(str) ("<span class='sciradio'>" + str + "</span>")
#define span_secradio(str) ("<span class='secradio'>" + str + "</span>")
#define span_servradio(str) ("<span class='servradio'>" + str + "</span>")
#define span_singing(str) ("<span class='singing'>" + str + "</span>")
#define span_slime(str) ("<span class='slime'>" + str + "</span>")
#define span_small(str) ("<span class='small'>" + str + "</span>")
#define span_smallnotice(str) ("<span class='smallnotice'>" + str + "</span>")
#define span_smallnoticeital(str) ("<span class='smallnoticeital'>" + str + "</span>")
#define span_spider(str) ("<span class='spider'>" + str + "</span>")
#define span_suicide(str) ("<span class='suicide'>" + str + "</span>")
#define span_suppradio(str) ("<span class='suppradio'>" + str + "</span>")
#define span_swarmer(str) ("<span class='swarmer'>" + str + "</span>")
#define span_syndradio(str) ("<span class='syndradio'>" + str + "</span>")
#define span_tape_recorder(str) ("<span class='tape_recorder'>" + str + "</span>")
#define span_tinynotice(str) ("<span class='tinynotice'>" + str + "</span>")
#define span_tinynoticeital(str) ("<span class='tinynoticeital'>" + str + "</span>")
#define span_unconscious(str) ("<span class='unconscious'>" + str + "</span>")
#define span_userdanger(str) ("<span class='userdanger'>" + str + "</span>")
#define span_warning(str) ("<span class='warning'>" + str + "</span>")
#define span_yell(str) ("<span class='yell'>" + str + "</span>")
#define span_yellowteamradio(str) ("<span class='yellowteamradio'>" + str + "</span>"
// VORE Specific stuff after this point
// Sorted by however I felt like it
#define span_game_say(str) ("<span class='game_say'>" + str + "</span>"
#define span_emote_subtle(str) ("<span class='emote_subtle'>" + str + "</span>"
#define span_emote(str) ("<span class='emote'>" + str + "</span>"

View File

@@ -197,3 +197,13 @@
name = "Turtleneck, Sleeveless"
icon_state = "sleevelessturtle"
has_color = TRUE
/datum/category_item/underwear/undershirt/dress_shirt_fem
name = "Dress shirt, feminine"
icon_state = "undershirt_dress_fem"
has_color = TRUE
/datum/category_item/underwear/undershirt/dress_shirt
name = "Dress shirt, masculine"
icon_state = "undershirt_dress"
has_color = TRUE

View File

@@ -101,6 +101,7 @@
BIOGEN_ITEM("Winter Coat", /obj/item/clothing/suit/storage/hooded/wintercoat, 1, 500),
//VOREStation Edit - Algae for oxygen generator
BIOGEN_ITEM("4 Algae Sheets", /obj/item/stack/material/algae, 4, 400),
BIOGEN_ITEM("50 Algae Sheets", /obj/item/stack/material/algae, 50, 5000),
)
/obj/machinery/biogenerator/tgui_static_data(mob/user)

View File

@@ -3,6 +3,10 @@
/obj/item/stack/proc/merge(obj/item/stack/S) //Merge src into S, as much as possible
if(uses_charge || S.uses_charge) // This should realistically never happen, but in case it does lets avoid breaking things.
return
if(S.stacktype != stacktype)
return
if(S.amount >= S.max_amount)
return
var/transfer = get_amount()
transfer = min(transfer, S.max_amount - S.amount)
@@ -15,6 +19,6 @@
S.add(transfer)
/obj/item/stack/Crossed(var/atom/movable/AM)
if(AM != src && istype(AM, src.type) && !AM.throwing)
if(isturf(AM.loc) && AM != src && istype(AM, src.type) && !AM.throwing)
merge(AM)
return ..()

View File

@@ -287,13 +287,12 @@
desc = "A chocolate-coated biscuit stick."
icon_state = "pockystick"
item_state = "pocky"
filling = list("sugar" = 2, "chocolate" = 5)
type_butt = null
/obj/item/clothing/mask/chewable/candy/pocky/process()
chew()
if(chewtime < 1)
if(ismob(loc))
to_chat(loc, "<span class='notice'>There's no more of \the [name] left!</span>")
spitout(0)
/obj/item/clothing/mask/chewable/candy/pocky/Initialize()
. = ..()
reagents.add_reagent("chocolate", 10)

View File

@@ -88,7 +88,7 @@
name = "combat knife"
desc = "If only you had a boot to put it in."
icon = 'icons/obj/weapons.dmi'
icon_state = "tacknife"
icon_state = "tacknife2"
item_state = "knife"
force_divisor = 0.34 // 20 with hardness 60 (steel)
thrown_force_divisor = 1.75 // 20 with weight 20 (steel)
@@ -101,7 +101,7 @@
name = "boot knife"
desc = "A small fixed-blade knife for putting inside a boot."
icon = 'icons/obj/weapons.dmi'
icon_state = "tacknife"
icon_state = "tacknife3"
item_state = "knife"
force_divisor = 0.15
applies_material_colour = 0
@@ -130,7 +130,7 @@
/obj/item/weapon/material/knife/butch
name = "butcher's cleaver"
icon_state = "butch"
icon_state = "cleaver"
desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown-by-products."
force_divisor = 0.25 // 15 when wielded with hardness 60 (steel)
attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")

View File

@@ -3,7 +3,7 @@
/obj/structure/dispenser
name = "tank storage unit"
desc = "A simple yet bulky storage device for gas tanks. Has room for up to ten oxygen tanks, and ten phoron tanks."
icon = 'icons/obj/objects.dmi'
icon = 'icons/obj/objects_vr.dmi'
icon_state = "dispenser"
density = TRUE
anchored = TRUE

View File

@@ -262,7 +262,9 @@ var/list/admin_verbs_debug = list(
/datum/admins/proc/change_time,
/client/proc/admin_give_modifier,
/client/proc/simple_DPS,
/datum/admins/proc/view_feedback
/datum/admins/proc/view_feedback,
/datum/admins/proc/quick_nif, //CHOMPStation Add,
/datum/admins/proc/quick_authentic_nif //CHOMPStation add
)
var/list/admin_verbs_paranoid_debug = list(
@@ -396,7 +398,8 @@ var/list/admin_verbs_mod = list(
/client/proc/getserverlog, //allows us to fetch server logs (diary) for other days,
/datum/admins/proc/view_persistent_data,
/datum/admins/proc/view_txt_log, //shows the server log (diary) for today,
/datum/admins/proc/view_atk_log //shows the server combat-log, doesn't do anything presently,
/datum/admins/proc/view_atk_log, //shows the server combat-log, doesn't do anything presently,
/datum/admins/proc/quick_nif //CHOMPStation Add,
)
var/list/admin_verbs_event_manager = list(
@@ -539,7 +542,9 @@ var/list/admin_verbs_event_manager = list(
/client/proc/cmd_admin_delete, //delete an instance/object/mob/etc,
/client/proc/cmd_debug_del_all,
/client/proc/toggle_random_events,
/client/proc/modify_server_news
/client/proc/modify_server_news,
/datum/admins/proc/quick_nif, //CHOMPStation Add,
/datum/admins/proc/quick_authentic_nif //CHOMPStation add
)

View File

@@ -53,6 +53,7 @@
var/mob/body = mob
var/mob/observer/dead/ghost = body.ghostize(1)
ghost.admin_ghosted = 1
log_and_message_admins("[key_name(src)] admin-ghosted.") // CHOMPEdit - Add logging.
if(body)
body.teleop = ghost
if(!body.key)

View File

@@ -883,7 +883,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
mob.set_viewsize(view)
log_admin("[key_name(usr)] changed their view range to [view].")
//message_admins("<font color='blue'>[key_name_admin(usr)] changed their view range to [view].</font>", 1) //why? removed by order of XSI
message_admins("<font color='blue'>[key_name_admin(usr)] changed their view range to [view].</font>", 1) //CHOMPEdit - Uncommented this.
feedback_add_details("admin_verb","CVRA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!

View File

@@ -90,13 +90,9 @@
/datum/gear/textmug
display_name = "mug with text"
description = "A mug with something written on it."
<<<<<<< HEAD
path = /obj/item/weapon/reagent_containers/food/drinks/textmug
=======
path = /obj/item/weapon/reagent_containers/food/drinks/textmug
/datum/gear/schnapsen
display_name = "schnapsen playing cards"
description = "French-suit playing cards! Pre-picked for 2-player mode."
path = /obj/item/weapon/deck/schnapsen
>>>>>>> b042467fe4... Merge pull request #12767 from GhostActual/powder_drugs

View File

@@ -11,6 +11,7 @@
name = "primitive clothes"
desc = "Some patched together rags. Better than being naked."
force = 0
has_sensor = 0
icon_state = "rag"
worn_state = "rag"
@@ -41,26 +42,31 @@
name = "tribalwear"
desc = "A traditionally woven robe made with locally sourced material."
icon_state = "tribal_common1"
has_sensor = 0
/obj/item/clothing/under/tribalwear/common2
name = "tribalwear"
desc = "A traditionally woven outfit made with locally sourced material."
icon_state = "tribal_common2"
has_sensor = 0
/obj/item/clothing/under/tribalwear/hunter
name = "hunting tribalwear"
desc = "Dusty rags decorated with strips of leather and small pieces of cyan colored stones."
icon_state = "tribal_hunter"
has_sensor = 0
/obj/item/clothing/under/tribalwear/chief
name = "chief's tribalwear"
desc = "Well maintained robe adorned with fine leather and polished cyan stones."
icon_state = "tribal_chief"
has_sensor = 0
/obj/item/clothing/under/tribalwear/shaman
name = "shaman robes"
desc = "Carefully hand wozen cloth robes with heavy colored stones jewelry drapped over top."
icon_state = "tribal_shaman"
has_sensor = 0
/obj/item/clothing/shoes/tribalwear
name = "tribal sandals"

View File

@@ -530,6 +530,7 @@
/obj/item/seeds/cocoapodseed = 3,
/obj/item/seeds/plumpmycelium = 2,
/obj/item/seeds/cabbageseed = 3,
/obj/item/seeds/lettuce = 3,
/obj/item/seeds/grapeseed = 3,
/obj/item/seeds/pumpkinseed = 3,
/obj/item/seeds/cherryseed = 3,
@@ -1542,7 +1543,7 @@
has_logs = 1
/obj/machinery/vending/wardrobe/lawdrobe
name = "lawyer wardrobe vendor"
name = "IAA wardrobe vendor"
desc = "All the things you need to perform your job! Why didn't you already have them?"
product_slogans = "Want to do your job? Sure you do!"
icon_state = "lawdrobe"

View File

@@ -281,7 +281,7 @@
/obj/item/weapon/reagent_containers/food/snacks/carpmeat
)
reagents = list("spacespice" = 1)
fruit = list("cabbage" = 1, "lime" = 1)
fruit = list("lettuce" = 1, "lime" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/grilled_carp
/datum/recipe/grilledcheese

View File

@@ -433,7 +433,7 @@ I said no!
result = /obj/item/weapon/reagent_containers/food/snacks/beetsoup
/datum/recipe/tossedsalad
fruit = list("cabbage" = 2, "tomato" = 1, "carrot" = 1, "apple" = 1)
fruit = list("lettuce" = 2, "tomato" = 1, "carrot" = 1, "apple" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/tossedsalad
/datum/recipe/flowersalad
@@ -1083,7 +1083,7 @@ I said no!
result = /obj/item/weapon/reagent_containers/food/snacks/fish_taco
/datum/recipe/blt
fruit = list("tomato" = 1, "cabbage" = 1)
fruit = list("tomato" = 1, "lettuce" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,
/obj/item/weapon/reagent_containers/food/snacks/slice/bread,

View File

@@ -100,7 +100,7 @@
result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/sushi
/datum/recipe/lobster
fruit = list("lemon" = 1, "cabbage" = 1)
fruit = list("lemon" = 1, "lettuce" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/lobster
)

View File

@@ -0,0 +1,29 @@
// this is a playing card deck based off of the Austrian/Hungarian national card game, Schnapsen
//TODO: Sprite up Double German/William Tell card icons. Sending this in as is as I suck at spriting and want to play schnapsen
//TODO: Implement functionality for "sub-decks": Create a over-schnapsen deck with nines, eights and sevens.
//TODO:Let players choose 2,3,4 player mode to get decks of ace/ten/jack/queen/king + seven for 3 player, nine+eight for 4 player modes.
/obj/item/weapon/deck/schnapsen
name = "deck of schnapsen cards"
desc = "An ancient trick-taking card game from a bygone-Earth country. For 2 players!"
icon_state = "deck"
/obj/item/weapon/deck/schnapsen/New()
..()
//Stealing french card icons.
var/datum/playingcard/P
var/colour
for(var/suit in list("spades","clubs","diamonds","hearts"))
if(suit == "spades" || suit == "clubs")
colour = "black_"
else
colour = "red_"
for(var/number in list("ace","ten","jack","queen","king")) //Schnapsen has knight worth 2 pts, queen 3 pts, king 4. Ace 11, ten 10
P = new()
P.name = "[number] of [suit]"
if(number == "ten")
P.card_icon = "[colour]num"
else
P.card_icon = "[colour]col"
P.back_icon = "card_back"
cards += P

View File

@@ -3,7 +3,7 @@
name = "lettuce"
seed_name = "lettuce"
display_name = "lettuce"
kitchen_tag = "cabbage"
kitchen_tag = "lettuce"
chems = list("nutriment" = list(1,15))
/datum/seed/lettuce/New()

View File

@@ -330,7 +330,7 @@
/obj/item/weapon/farmbot_arm_assembly
name = "water tank/robot arm assembly"
desc = "A water tank with a robot arm permanently grafted to it."
icon = 'icons/obj/aibots.dmi'
icon = 'icons/obj/chemical_tanks.dmi'
icon_state = "water_arm"
var/build_step = 0
var/created_name = "Farmbot"

View File

@@ -814,7 +814,7 @@
/mob/living/proc/flying_toggle()
set name = "Toggle Flight"
set desc = "While flying over open spaces, you will use up some nutrition. If you run out nutrition, you will fall. Additionally, you can't fly if you are too heavy."
set desc = "While flying over open spaces, you will use up some nutrition. If you run out nutrition, you will fall."
set category = "Abilities"
var/mob/living/carbon/human/C = src
@@ -827,14 +827,25 @@
if(C.nutrition < 25 && !C.flying) //Don't have any food in you?" You can't fly.
to_chat(C, "<span class='notice'>You lack the nutrition to fly.</span>")
return
if(C.nutrition > 1000 && !C.flying)
to_chat(C, "<span class='notice'>You have eaten too much to fly! You need to lose some nutrition.</span>")
return
C.flying = !C.flying
update_floating()
to_chat(C, "<span class='notice'>You have [C.flying?"started":"stopped"] flying.</span>")
/mob/living/
var/flight_vore = FALSE
/mob/living/proc/flying_vore_toggle()
set name = "Toggle Flight Vore"
set desc = "Allows you to engage in voracious misadventures while flying."
set category = "Abilities"
flight_vore = !flight_vore
if(flight_vore)
to_chat(src, "You have allowed for flight vore! Bumping into characters while flying will now trigger dropnoms! Unless prefs don't match.. then you will take a tumble!")
else
to_chat(src, "Flight vore disabled! You will no longer engage dropnoms while in flight.")
//Proc to stop inertial_drift. Exchange nutrition in order to stop gliding around.
/mob/living/proc/start_wings_hovering()
set name = "Hover"

View File

@@ -27,6 +27,7 @@
/mob/living/carbon/human/proc/sonar_ping,
/mob/living/carbon/human/proc/tie_hair,
/mob/living/proc/flying_toggle,
/mob/living/proc/flying_vore_toggle,
/mob/living/proc/start_wings_hovering,
/mob/living/carbon/human/proc/lick_wounds) //Xenochimera get all the special verbs since they can't select traits.
// CHOMPEdit: Lick Wounds Verb

View File

@@ -137,6 +137,7 @@
name_language = LANGUAGE_BIRDSONG
color_mult = 1
inherent_verbs = list(/mob/living/proc/flying_toggle,
/mob/living/proc/flying_vore_toggle,
/mob/living/proc/start_wings_hovering,
/mob/living/carbon/human/proc/tie_hair)
min_age = 18
@@ -397,7 +398,7 @@
name_language = null
color_mult = 1
genders = list(MALE, FEMALE, PLURAL, NEUTER)
inherent_verbs = list(/mob/living/proc/flying_toggle,/mob/living/proc/start_wings_hovering,/mob/living/carbon/human/proc/tie_hair)
inherent_verbs = list(/mob/living/proc/flying_toggle,/mob/living/proc/flying_vore_toggle,/mob/living/proc/start_wings_hovering,/mob/living/carbon/human/proc/tie_hair)
min_age = 18
max_age = 80

View File

@@ -119,6 +119,7 @@
/datum/trait/positive/winged_flight/apply(var/datum/species/S,var/mob/living/carbon/human/H)
..(S,H)
H.verbs |= /mob/living/proc/flying_toggle
H.verbs |= /mob/living/proc/flying_vore_toggle
H.verbs |= /mob/living/proc/start_wings_hovering
/datum/trait/positive/soft_landing

View File

@@ -21,7 +21,7 @@
/obj/item/weapon/tank,
/obj/item/weapon/circuitboard,
/obj/item/weapon/smes_coil,
/obj/item/weapon/fuel_assembly //chompstation addition so they can set up rust
/obj/item/weapon/fuel_assembly
)
var/obj/item/wrapped = null // Item currently being held.

View File

@@ -338,5 +338,6 @@
name = "Eastern Dragon (Taur)"
icon_state = "noodle_s"
extra_overlay = "noodle_markings"
suit_sprites = 'icons/mob/taursuits_noodle.dmi'
clip_mask_state = "taur_clip_mask_noodle"
icon_sprite_tag = "noodle"

View File

@@ -592,5 +592,6 @@
icon_state = "noodle_s"
extra_overlay = "noodle_markings"
extra_overlay2 = "noodle_markings_2"
suit_sprites = 'icons/mob/taursuits_noodle_vr.dmi'
clip_mask_state = "taur_clip_mask_noodle"
icon_sprite_tag = "noodle"

View File

@@ -243,9 +243,6 @@
if(L.incapacitated(INCAPACITATION_ALL))
L.stop_flying()
//Just here to see if the person is KO'd, stunned, etc. If so, it'll move onto can_fall.
else if (L.nutrition > 1000) //Eat too much while flying? Get fat and fall.
to_chat(L, "<span class='danger'>You're too heavy! Your wings give out and you plummit to the ground!</span>")
L.stop_flying() //womp womp.
else if(L.nutrition < 300 && L.nutrition > 299.4) //290 would be risky, as metabolism could mess it up. Let's do 289.
to_chat(L, "<span class='danger'>You are starting to get fatigued... You probably have a good minute left in the air, if that. Even less if you continue to fly around! You should get to the ground soon!</span>") //Ticks are, on average, 3 seconds. So this would most likely be 90 seconds, but lets just say 60.
L.adjust_nutrition(-0.5)

View File

@@ -43,13 +43,13 @@
var/mob/living/prey = src
var/fallloc = prey.loc
if(pred.can_be_drop_pred && prey.can_be_drop_prey)
if(pred.can_be_drop_pred && prey.can_be_drop_prey && pred.drop_vore && prey.drop_vore)
pred.feed_grabbed_to_self_falling_nom(pred,prey)
pred.loc = fallloc
if(!safe_fall)
pred.Weaken(8)
pred.visible_message("<span class='danger'>\The [pred] falls right onto \the [prey]!</span>")
else if(prey.can_be_drop_pred && pred.can_be_drop_prey)
else if(prey.can_be_drop_pred && pred.can_be_drop_prey && pred.drop_vore && prey.drop_vore)
prey.feed_grabbed_to_self_falling_nom(prey,pred)
pred.Weaken(4)
pred.visible_message("<span class='danger'>\The [pred] falls right into \the [prey]!</span>")

View File

@@ -436,6 +436,15 @@
nutriment_factor = 5
color = "#302000"
/datum/reagent/nutriment/chocolate
name = "Chocolate"
id = "chocolate"
description = "Great for cooking or on its own!"
taste_description = "chocolate"
color = "#582815"
nutriment_factor = 5
taste_mult = 1.3
/datum/reagent/nutriment/instantjuice
name = "Juice Powder"
id = "instantjuice"
@@ -1008,6 +1017,16 @@
..()
M.reagents.add_reagent("imidazoline", removed * 0.2)
/datum/reagent/drink/juice/lettuce
name = "Lettuce Juice"
id = "lettucejuice"
description = "It's mostly water, just a bit more lettucy."
taste_description = "fresh greens"
color = "#29df4b"
glass_name = "lettuce juice"
glass_desc = "This is just lettuce water. Fresh but boring."
/datum/reagent/drink/juice
name = "Grape Juice"
id = "grapejuice"
@@ -1096,7 +1115,7 @@
glass_desc = "Vitamins! Yay!"
allergen_type = ALLERGEN_FRUIT //Oranges are fruit
/datum/reagent/drink/orangejuice/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
/datum/reagent/drink/juice/orange/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
if(alien == IS_DIONA)
return

View File

@@ -30,6 +30,9 @@
var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time.
var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon.
var/permit_healbelly = TRUE
var/stumble_vore = FALSE
var/slip_vore = FALSE
var/drop_vore = FALSE
var/can_be_drop_prey = FALSE
var/can_be_drop_pred = TRUE // Mobs are pred by default.
var/allow_spontaneous_tf = FALSE // Obviously.
@@ -241,6 +244,9 @@
P.allow_spontaneous_tf = src.allow_spontaneous_tf
P.step_mechanics_pref = src.step_mechanics_pref
P.pickup_pref = src.pickup_pref
P.drop_vore = src.drop_vore
P.slip_vore = src.slip_vore
P.stumble_vore = src.stumble_vore
//CHOMP stuff
@@ -286,6 +292,9 @@
allow_spontaneous_tf = P.allow_spontaneous_tf
step_mechanics_pref = P.step_mechanics_pref
pickup_pref = P.pickup_pref
drop_vore = P.drop_vore
slip_vore = P.slip_vore
stumble_vore = P.stumble_vore
//CHOMP stuff
latejoin_vore = P.latejoin_vore
@@ -976,6 +985,9 @@
dispvoreprefs += "<b>Can be late join prey:</b> [latejoin_prey ? "Enabled" : "Disabled"]<br>" //CHOMPstation edit
dispvoreprefs += "<b>Receiving liquids:</b> [receive_reagents ? "Enabled" : "Disabled"]<br>" //CHOMPstation edit
dispvoreprefs += "<b>Giving liquids:</b> [give_reagents ? "Enabled" : "Disabled"]<br>" //CHOMPstation edit
dispvoreprefs += "<b>Drop Vore:</b> [drop_vore ? "Enabled" : "Disabled"]<br>"
dispvoreprefs += "<b>Slip Vore:</b> [slip_vore ? "Enabled" : "Disabled"]<br>"
dispvoreprefs += "<b>Stumble Vore:</b> [stumble_vore ? "Enabled" : "Disabled"]<br>"
dispvoreprefs += "<b>Spontaneous transformation:</b> [allow_spontaneous_tf ? "Enabled" : "Disabled"]<br>"
dispvoreprefs += "<b>Can be stepped on/over:</b> [step_mechanics_pref ? "Allowed" : "Disallowed"]<br>"
dispvoreprefs += "<b>Can be picked up:</b> [pickup_pref ? "Allowed" : "Disallowed"]<br>"

View File

@@ -16,6 +16,8 @@
return FALSE
if(!src.vore_selected) //Gotta have one selected as well.
return FALSE
if(!slip_vore || !target.slip_vore)
return FALSE
return TRUE
/mob/living/proc/can_be_slip_vored_by(var/mob/living/target)
@@ -29,6 +31,9 @@
return FALSE
if(!target.vore_selected) //Gotta have one selected as well.
return FALSE
if(!slip_vore || !target.slip_vore)
to_chat(src,"<span class='warning'>Pred slip_vore is [target.slip_vore] Prey slip_vore is [slip_vore]</span>")
return FALSE
return TRUE
/mob/living/Crossed(var/atom/movable/AM)

View File

@@ -0,0 +1,54 @@
/mob/living/proc/CanStumbleVore(mob/living/target)
if(!can_be_drop_pred)
return FALSE
if(!is_vore_predator(src))
return FALSE
if(!target.devourable)
return FALSE
if(!target.can_be_drop_prey)
return FALSE
if(!target.stumble_vore || !stumble_vore)
return FALSE
return TRUE
/mob/living/Bump(atom/movable/AM)
//. = ..()
if(istype(AM, /mob/living))
if(((confused || is_blind()) && stat == CONSCIOUS && prob(50) && m_intent=="run") || flying && flight_vore)
AM.stumble_into(src)
return ..()
// Because flips toggle density
/mob/living/Crossed(var/atom/movable/AM)
if(istype(AM, /mob/living) && isturf(loc) && AM != src)
var/mob/living/AMV = AM
if(((AMV.confused || AMV.is_blind()) && AMV.stat == CONSCIOUS && prob(50) && AMV.m_intent=="run") || AMV.flying && AMV.flight_vore)
stumble_into(AMV)
..()
/mob/living/stumble_into(mob/living/M)
var/mob/living/carbon/human/S = src
playsound(src, "punch", 25, 1, -1)
M.Weaken(4)
M.stop_flying()
if(CanStumbleVore(M))
visible_message("<span class='warning'>[M] flops carlessly into [src]!</span>")
perform_the_nom(src,M,src,src.vore_selected,1)
else if(M.CanStumbleVore(src))
visible_message("<span class='warning'>[M] flops carlessly into [src]!</span>")
perform_the_nom(M,src,M,M.vore_selected,1)
else if(S.species.lightweight == 1)
visible_message("<span class='warning'>[M] carelessly bowls [src] over!</span>")
M.forceMove(get_turf(src))
M.apply_damage(0.5, BRUTE)
Weaken(4)
stop_flying()
apply_damage(0.5, BRUTE)
else if(round(weight) > 474)
var/throwtarget = get_edge_target_turf(M, reverse_direction(M.dir))
visible_message("<span class='warning'>[M] bounces backwards off of [src]'s plush body!</span>")
M.throw_at(throwtarget, 2, 1)
else
visible_message("<span class='warning'>[M] trips over [src]!</span>")
M.forceMove(get_turf(src))
M.apply_damage(1, BRUTE)

View File

@@ -54,6 +54,11 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
var/allowmobvore = TRUE
var/permit_healbelly = TRUE
// These are 'modifier' prefs, do nothing on their own but pair with drop_prey/drop_pred settings.
var/drop_vore = FALSE
var/stumble_vore = FALSE
var/slip_vore = FALSE
var/resizable = TRUE
var/show_vore_fx = TRUE
var/step_mechanics_pref = FALSE
@@ -154,6 +159,9 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
step_mechanics_pref = json_from_file["step_mechanics_pref"]
pickup_pref = json_from_file["pickup_pref"]
belly_prefs = json_from_file["belly_prefs"]
drop_vore = json_from_file["drop_vore"]
slip_vore = json_from_file["slip_vore"]
stumble_vore = json_from_file["stumble_vore"]
//CHOMP stuff
@@ -195,6 +203,12 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
pickup_pref = TRUE
if(isnull(belly_prefs))
belly_prefs = list()
if(isnull(drop_vore))
drop_vore = FALSE
if(isnull(slip_vore))
slip_vore = FALSE
if(isnull(stumble_vore))
stumble_vore = FALSE
//CHOMP stuff
if(isnull(latejoin_vore))
@@ -238,7 +252,10 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
"belly_prefs" = belly_prefs,
"receive_reagents" = receive_reagents,
"give_reagents" = give_reagents,
"autotransferable" = autotransferable
"autotransferable" = autotransferable,
"drop_vore" = drop_vore,
"slip_vore" = slip_vore,
"stumble_vore" = stumble_vore,
)
//List to JSON

View File

@@ -321,8 +321,11 @@
"liq_rec" = host.receive_reagents,
"liq_giv" = host.give_reagents,
"autotransferable" = host.autotransferable,
"noisy_full" = host.noisy_full //Belching while full
"noisy_full" = host.noisy_full, //Belching while full
//CHOMPedit end
"drop_vore" = host.drop_vore,
"slip_vore" = host.slip_vore,
"stumble_vore" = host.stumble_vore,
)
return data
@@ -574,9 +577,18 @@
unsaved_changes = TRUE
return TRUE
//CHOMPedit end
if("toggle_drop_vore")
host.drop_vore = !host.drop_vore
unsaved_changes = TRUE
return TRUE
if("toggle_slip_vore")
host.slip_vore = !host.slip_vore
unsaved_changes = TRUE
return TRUE
if("toggle_stumble_vore")
host.stumble_vore = !host.stumble_vore
unsaved_changes = TRUE
return TRUE
/datum/vore_look/proc/pick_from_inside(mob/user, params)
var/atom/movable/target = locate(params["pick"])

View File

@@ -0,0 +1,155 @@
Welcome!
This guide **ASSUMES** you have gone through the Guide to Opening your First PR. If you have NOT done so yet, please refer here, and ask in Discord's #ss13-development channel (For CHOMPStation), #dev-general (for VOREStation), or #code (for Polaris) if you have any questions, or need assistance with completing these steps.
You can also @ maintainers or staff devs, which can be viewed in the sidebar of each codebases Discord, and will usually have roles such as “Maintainer” (For VOREStation), “StaffDev/StaffMaintainer” (for CHOMPStation), and “Maintainer” (for Polaris).
[CHOMPStation]([https://github.com/CHOMPStation2/CHOMPStation2/blob/master/guides/Guide%20to%20Opening%20Your%20First%20PR.md](https://github.com/CHOMPStation2/CHOMPStation2/blob/master/guides/Guide%20to%20Opening%20Your%20First%20PR.md))
[VOREStation]([https://github.com/VOREStation/VOREStation/blob/master/guides/Guide%20to%20Opening%20Your%20First%20PR.md](https://github.com/VOREStation/VOREStation/blob/master/guides/Guide%20to%20Opening%20Your%20First%20PR.md))
[Polaris - TBD]
You will also WANT VSCode to edit the files, but this is not required, as DM can also do so. See Guide to VSCode/Editor Setup, or check the wiki pages on how to contribute to learn more. (These are currently TBD but will be done soon:™:)
Before proceeding, remember to make your branch! We should have a new branch titled “x-dev-POI”, or whatever you want to name it. Well assume its named “shep-dev-POI” for this tutorials context.
With that out of the way, congrats on getting setup! Lets dive into how to make your first POI. \
\
To start, we need to open up the repo you downloaded earlier. If youre not sure where that is, Gitkraken should be able to tell you by hovering over the codebase name, in the top left, and hitting **Alt+O** will open the file manager. \
Either way, we should see [this]([https://i.imgur.com/FOUVK4n.png](https://i.imgur.com/FOUVK4n.png)) - Image references CHOMPStation, but the general folders should be the same for Polaris + VOREStation.
Before we can map, we need to setup several code prerequisites in order to actually have a new area for our map. In order to do so, we are going to locate the POI folder. We are going to add a POI to the Wilderness area for our tutorial.
Follow this reference: \
Go to /maps/, and then find the folder the POIs for the given map are saved. This is code-base specific, so Polaris + CHOMP use /maps/submaps/surface_submaps/ for theirs, and then each folder (mountains, wilderness, plains) is a different area. If youre on Southern Cross, Plains is the area around the outpost, Mountains is the mines, and Wilderness is the deep wilds. Polaris, TBD.
VORE has their submaps for SPECIFIC areas defined in /mapused (IE Tether)/submaps. This sub-main folder should only be used for map-specific POIs, for example, POIs that would only exist if Tether was loaded.
Otherwise, refer to /submaps/ and locate the folder in question. If youre not sure, poke around, or ask in the channel for the codebase youre currently working on for help.
Once weve gotten to the folder in question, scroll down until you see, for this reference, wilderness.dm, and wilderness_areas.dm.
Double click to open wilderness_areas.dm. Follow the subheadings depending on the tool youre using.
VSCode: If youve already installed VSCode and told it to associate with .dm files as per the tutorial, itll open here and error. We need to open the main folder, by going to File, Open Folder, and then navigate to our base repository. This is where all the folders like maps, guides, etc are.
Hit Select Folder. Well open to a blank screen. Hit Ctrl + P to open a specific file, and type in wilderness_areas, and select wilderness_areas.dm. From here, refer to the joint section below.
DreamMaker: This should have opened with our filetree, as screenshotted. [https://i.imgur.com/m8FjRAs.png](https://i.imgur.com/m8FjRAs.png) If it did not, navigate to File, Open Environment, and select vorestation.dme. Then, navigate to maps, submaps, surface submaps, wilderness, and open wilderness_areas.dm.
Joint (This assumes weve located the file as per instructions above. If youre not using Dream Maker or VSCode, youre expected to understand how to open the file yourself.) This section will be done in VSCode, but later iterations will screenshot the process in Dream Maker (its basically identical, just waiting on the wiki page to bother doing so.)
Go ahead and look over the areas. Well notice something, even if you dont quite know how to read code: each new area only has name + ambience changed, likely, right?
Image here [https://i.imgur.com/A2pMluj.png](https://i.imgur.com/A2pMluj.png)
Without getting too deep into code, BYOND uses OOP, which in laymans terms, means every single new object created with the same path as another will inherit things. This saves us having to redefine it every time we make a new one.
For YOU this means all were going to do is highlight an area subsection (Ill be using Black-Op Shuttles area for this) [https://i.imgur.com/zCUu0R3.png](https://i.imgur.com/zCUu0R3.png), hit copy, and then scroll down to the bottom, hit enter once to generate a new line, and hit paste. You should see this, if in VSCode: [https://i.imgur.com/AtQvNV6.png](https://i.imgur.com/AtQvNV6.png)
Now were going to change “Blackshuttledown” to “myfirstPOI”. Change it to whatever you like, but Im simply using a tutorial name here. Then, at the “name = “POI - blahblah”, were going to change it to “POI - Newbie”. Leave everything else alone for now unless you want a special ambience, though you can easily just replace AMBIENCE_HIGHSEC with AMBIENCE_OTHERWORLDLY.
Once weve done that, our new area should look like this: [https://i.imgur.com/ttVNbYq.png](https://i.imgur.com/ttVNbYq.png)
With that, we save, and exit the code. Well come back to it at a later step to ADD our POI to the actual map template section, but for now, we need to MAKE the POI first, no?
For this next step, return to the BASE folder, where the .dme and maps/etc folders are.
\
Were going to navigate to *tools* and then StrongDMM. This is not REQUIRED, but is heavily recommended - maintainers will ask you to run mapmerge where possible if you use DreamMaker. The rest of this guide WILL ASSUME YOU ARE USING STRONGDMM. The wiki will offer sections for DreamMaker as well as StrongDMM. \
\
Run sdmmlauncher.exe. Screenshot here: \
[https://i.imgur.com/VxvRntf.png](https://i.imgur.com/VxvRntf.png)
You should be greeted with this: [https://i.imgur.com/9dhRcz3.png](https://i.imgur.com/9dhRcz3.png)
We are going to do something first before opening any environments. Go to File, Preferences in the top left. Then, in Interface Options, select a style you like. Rykka (hi, the author of this) uses Dark Coast. Use whatever you like.
Under Save Options, **change this to TGM.** Check Sanitize Variables. Also check Clean Unused Keys, if this is not already checked. Nudge mode should be pixel_x/pixel_y.
With that done, hit Open Environment, and navigate to the folder we downloaded in the earlier step. Open vorestation.dme, for VORE + CHOMP, or Polaris.dme for Polaris.
The file will load, and then youll still be at a blank screen, but now the Environment Tree should have 4 directories under it. \
This is what it looks like. [https://i.imgur.com/RtURzx8.png](https://i.imgur.com/RtURzx8.png)
You should also be able to see the name in the top left.
Now, we are going to go to File, New Map. \
This will open a dialogue box with the base folder of our repo. Dont panic. \
Go to /maps/, and then find the folder the POIs for the given map are saved. This is code-base specific, so Polaris + CHOMP use /maps/submaps/surface_submaps/ for theirs, and then each folder (mountains, wilderness, plains) is a different area. If youre on Southern Cross, Plains is the area around the outpost, Mountains is the mines, and Wilderness is the deep wilds. Polaris, TBD.
VORE has their submaps for SPECIFIC areas defined in /mapused (IE Tether)/submaps. This sub-main folder should only be used for map-specific POIs, for example, POIs that would only exist if Tether was loaded.
Otherwise, refer to /submaps/ and locate the folder in question. If youre not sure, poke around, or ask in the channel for the codebase youre currently working on for help.
Once weve located the folder, well assume were doing Wilderness for this one - well be in this folder, and well type the name of our new map and hit Save. Image here: [https://i.imgur.com/CCIuuwy.png](https://i.imgur.com/CCIuuwy.png)
Now, it is going to bring up a dialogue box on map size. ALWAYS leave the Z at 1. \
Set the X + Y to whatever you prefer, this will be the SIZE of our POI. For example, six tiles across would be 6 X, and 5 tiles tall would be 5 Y. The layout referenced in the tutorial is here: [https://i.imgur.com/T2jQwZB.png](https://i.imgur.com/T2jQwZB.png)
Hit Ok. \
\
Your new map will load in the bottom-left corner, depending on SDMM. Scroll in using your mouse, and hold the middle mouse button (or whatever the hotkey is if SDMM ever changes) to pan.
Once weve navigated and zoomed so our POI is relatively sized, we should see this: [https://i.imgur.com/e8VhPxk.png](https://i.imgur.com/e8VhPxk.png)
Hit Save (Ctrl + S) now! Just in case.
In the top left, where it says “Types Filter”, type the name of our new area. This will be “myfirstPOI”. Click to select. You should see this. [https://i.imgur.com/mG458sl.png](https://i.imgur.com/mG458sl.png)
Go to the map editor, and drag it over the interior tiles. Then, go back to types filter (where we typed in prior), clear it, and find template. Well see two things come up, /turf/template_noop, and /area/template_noop. Do turf template around the outside of our new area, and then do area template around the outside of our new area. \
\
We should see this: \
[https://i.imgur.com/z722p97.png](https://i.imgur.com/z722p97.png)
Now go to Options, and hit “Toggle Area”. This will turn off the area display. Clear the types filter select, and hit the big - button next to it to collapse all trees again so we just have 4, these being (area/turf/obj/mob), our base BYOND types.
Go to turf, then simulated, then floor, then outdoors, then dirt. Drag it over the center tiles, so now there should only be dirt + passthrough. (the template turf is also called passthrough in coder parlance). Obviously, we can add more turfs and get more complex if you like, but youll need to worry about atmos composition and etc. Were not going to stress about that for now, as we can learn about all that later.
For now, collapse all trees again, and then go to “mob”, then living, then simple_mob (do not use simple_animal, it is deprecated), then select a mob from any of these subtrees. For our example, were going to go to animal, wolf, direwolf, and choose a regular direwolf (or Rykka, if youre on a VORE downstream).
Place it anywhere on the dirt or passthrough tiles, and hit save. I recommend NOT placing on the passthrough tiles, as they may suddenly spawn inside solid rock.
Make sure to save. Weve accomplished adding a rudimentary, if not-super-featured POI.
This is what it should look like before we close the editor. [https://i.imgur.com/MU1YuKs.png](https://i.imgur.com/MU1YuKs.png)
Now, were going to go back to our editor of choice. Refer above for instructions on how to open the codebase on each editor, but were going to, instead of opening wilderness_areas, open wilderness.dm.
This will bring you to a bunch of new stuff. Youre going to see an #if and etc.
DONT PANIC.
All were going to do is scroll down the list, and find where our POI would slot in alphabetically. For instance, ours, via this tutorial, is myfirstPOI.dmm. Were going to insert this after musk.dmm.
Click at the end of #include “musk.dmm” and hit enter once, then type #include “myfirstPOI.dmm”. Name will vary, of course, depending on your POI, but for this tutorial, thats the name we used.
You should see this if the step was completed successfully. [https://i.imgur.com/c686Ji4.png](https://i.imgur.com/c686Ji4.png)
Now, were going to scroll down. Remember earlier how it was explained that you only need to change the variables that DO change on your new map?
Copy line 76, or this area snippet: `/datum/map_template/surface/wilderness/deep/BSD`
At the end of the file, hit paste after inserting a new line underneath the last entry, so theres always a line of space between the end of one thing and the next.
Then, as with adding the area, change the “BSD” to your name, then “name = “blah”” to whatever your name is.
Change the name of the .dmm in mappath to match your .dmm, and change the cost down to 5 (this is a very tiny POI). Remove the template_group, as we dont use it presently.
It should look like this afterwards:
[https://i.imgur.com/HguoHxT.png](https://i.imgur.com/HguoHxT.png)
And weve added it! Woo!
Before you go “man that was way too much work fuck this” we still need to PR it. \
Open your git client of choice - if youve been following the guide up to this point, well reference Gitkraken.
As explained in the Guide to Opening your First PR, youll need to Stage + Commit these files. If youve followed instructions and still need help, contact maintainers or ask for help in the development channels.
Commit, and then again, as per prior, we are going to start a pull request. At this point, you should be done!
As with the other guides, if you run into issues, please let maintainers know and well help you out. DONT FEEL BAD FOR BEING NEW AND GOING “AAA”. \
\
We all started somewhere. I hope this guide helps give you the confidence you need to contribute to this codebase and help keep our project going. Thank you for your time and effort. <3

View File

@@ -0,0 +1,59 @@
Overmap Ships + Places, the Guide
This is a very basic list of just "what is needed". It is assumed you'll lookup where these go.
Proper, full-length guide will be added later to here + the wiki.
For now, just use this as reference for what is needed for Overmap ships + locations.
**CREATED IN-EDITOR:**
```
/obj/effect/shuttle_landmark
var edits:
base_area: what area to replace the shuttle's area with when it's left
base_turf: what turf to replace the shuttle's location when it's left
landmark_tag: lowercase identifier. Used in current_location
name: the landmark's name.
```
**CREATED IN-CODE:**
```c
/area/shuttle/SHIPNAME
name = "\improper [Name]" // Just replace [Name] with whatever your want to name the ship
icon_state = "shuttlered"
requires_power = 1 // Or 0 if you don't want to have to power the ship yourself.
//Area should probably be placed in southern-cross-areas.dm but the rest can go into some file all together.
/datum/shuttle/autodock/overmap/SHIPNAME
name = "[Name]"
warmup_time = 0
current_location = "" // See CREATED IN-EDITOR
shuttle_area = /area/shuttle/SHIPNAME // See above area. Can also be list of multiple areas.
fuel_consumption = 1 // Typically defines how much fuel the shuttle uses per jump. 1-3 is reasonable, base it on size.
move_direction = NORTH / SOUTH / EAST / WEST
/obj/effect/overmap/visitable/ship/landable/SHIPNAME
name = "[Name]" // Can be named whatever, best to keep it similar to actual ship name.
desc = "Some description goes here."
vessel_mass = 1000 // Some factor for speed. For reference, 1000 is fucking fast, 10000 is only fast when maxed on engines and very costly.
vessel_size = SHIP_SIZE_TINY / SHIP_SIZE_SMALL / SHIP_SIZE_LARGE
shuttle = "[Name]" // Direct reference to above shuttle. MUST be the same as name.
/obj/machinery/computer/shuttle_control/explore/SHIPNAME
name = "short jump console"
shuttle_tag = "[Name]" // Direct reference to above shuttle. MUST be the same as name.
req_one_access = list(access_pilot)
```
**OVERMAP SHIP CREATION INSTRUCTIONS:**
Build your shuttle however you'd like, though it MUST have:
- Phoron cannister(s) hooked up to proper engines. /obj/machinery/atmospherics/unary/engine
- Engine Control. `/obj/machinery/computer/ship/engines`
- Helm Control. `/obj/machinery/computer/ship/helm`
- Fuel port, for short distance jumps and docking. `/obj/structure/fuel_port`
- Short jump console, defined in code earlier. `/obj/machinery/computer/shuttle_control/explore/SHIPNAME`
- A spawned in effect, defined in code earlier, inside of the ship area. `/obj/effect/overmap/visitable/ship/landable/SHIPNAME`
- A docking point, made through the map editor, mentioned earlier. `/obj/effect/ship_landmark`. Typically this is placed inside the ship, directly in front of the exterior door. This dictates where it places the shuttles so be sure to actually test how your shuttles react to landing in odd locations. The landmark's tag also needs to be added to the appropriate area in `maps/southern_cross/overmap/sectors.dm` or else ships cannot dock there.
- The shuttle also needs to be placed entirely in the designated area that you made in the above code, since shuttles are based off of the area everything is in.
It would be **RECOMMENDED** to also have:
- Sensors, controlled by `/obj/machinery/computer/ship/sensors` and `/obj/machinery/shipsensors` (maybe the /weak variant for small ships if you add them at all?)
- Docking Controller. Not 100% sure on how these work yet, but will be updated as needed. Not necessary, just nice to have for ease of access.
- A pump somewhere in the fuel intake to your engines, for better fuel management.

View File

@@ -0,0 +1,30 @@
This guide will simply list VSCode + the extensions needed, plus very basic instructions, as VSCode has a NUMBER of tutorials on it, and there's little need to reinvent the wheel.
It is assumed that you can follow the VSCode walkthrough. Navigate to the Extensions tab on the left, type @recommended, and then install each extension under the "Recommended" Tab.
Screenshot here, but don't rely on this as the workspace recommendations may change over time. https://i.imgur.com/CF0P6TI.png
If you require assistance, don't feel stupid! Just ask a maintainer or ask in Discord for help. Be prepared to take screenshots if you need.
**VSCode + All mission-critical extensions for DM Coding.**
<https://code.visualstudio.com/> VSCode, the root tool.
<https://marketplace.visualstudio.com/items?itemName=gbasood.byond-dm-language-support> DM language support, allow autoupdates
<https://marketplace.visualstudio.com/items?itemName=platymuus.dm-langclient> DM Language client, also allows compiling. When setting it up you need to go to extension settings, then "choose folder", pick the BYOND folder that has "uninstall.exe" and "bin" folders (the root/base folder). Then, once that's done, you can literally hit ctrl+shift+b and choose the .dme, and compile inside VSCode. It's FAR faster than compiling in Dream Maker.
Screenshot of settings: <https://i.gyazo.com/378b93de1a68886a0dc3b919a2a7a401.png>
<https://marketplace.visualstudio.com/items?itemName=stylemistake.auto-comment-blocks> Auto Comment Blocks (Allows multi-line comments easily in DM)
<https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow> Indent Rainbow - makes your indents colorcoded by how deep they are.
<https://marketplace.visualstudio.com/items?itemName=Donkie.vscode-tgstation-test-adapter> Not adapted for our code yet, but this allows one to run compile tests the same as online does.
{
"editor.bracketPairColorization.enabled": true,
"editor.guides.bracketPairs":"active"
}
Add this to settings.json
If you run into issues, ask in Discord for help.
**Optional.**
<https://marketplace.visualstudio.com/items?itemName=icrawl.discord-vscode> Discord rich presence, not needed, but looks pretty
<https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens> This one is also optional, works for allowing you to gitblame and stuff. Requires setup, but will walk you through it, and ALSO links with Gitkraken. Extremely handy.
**Quick Tips for VSCode**
Highlighting a proc and right clicking, then going to "Definition" or "Implementation" will allow you to easily see/lookup wherever it's used. This is massively helpful over having to manually search it.
CTRL+F will bring up a search, that also allows a replace line-by-line.
CTRL+Clicking will also (usually) take you to the definition of a proc/verb/etc.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 211 KiB

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 624 KiB

After

Width:  |  Height:  |  Size: 624 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 MiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 168 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

@@ -0,0 +1,316 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/space,
/area/space)
"e" = (
/obj/structure/window/reinforced/full,
/obj/structure/window/reinforced{
dir = 8
},
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/grille,
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled/dark,
/area/library)
"f" = (
/obj/structure/window/reinforced/full,
/obj/structure/window/reinforced{
dir = 8
},
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/window/reinforced,
/obj/structure/grille,
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled/dark,
/area/library)
"g" = (
/obj/machinery/power/apc{
dir = 8;
name = "west bump";
pixel_x = -24
},
/obj/structure/cable/green{
d2 = 4;
icon_state = "0-4"
},
/obj/item/device/radio/intercom{
desc = "Talk... listen through this.";
name = "Station Intercom (Brig Radio)";
pixel_y = -21;
wires = 7
},
/turf/simulated/floor/tiled/dark,
/area/library)
"h" = (
/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/dark,
/area/library)
"m" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable/green{
d1 = 2;
d2 = 8;
icon_state = "2-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/tiled/dark,
/area/library)
"n" = (
/obj/machinery/disposal/wall{
dir = 4;
pixel_x = -33
},
/obj/structure/disposalpipe/trunk{
dir = 4
},
/turf/simulated/floor/tiled/dark,
/area/library)
"o" = (
/turf/simulated/floor/tiled/dark,
/area/library)
"r" = (
/turf/simulated/wall,
/area/hallway/primary/central_one)
"u" = (
/obj/machinery/light{
dir = 4
},
/turf/simulated/floor/tiled/dark,
/area/hallway/primary/central_one)
"y" = (
/obj/machinery/light,
/turf/simulated/floor/tiled/dark,
/area/library)
"z" = (
/obj/machinery/door/firedoor/glass,
/obj/structure/disposalpipe/segment,
/obj/structure/cable/green{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/door/airlock/glass,
/turf/simulated/floor/tiled/dark,
/area/library)
"A" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 6
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
/turf/simulated/floor/tiled/dark,
/area/library)
"B" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable/green{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/tiled/dark,
/area/hallway/primary/central_one)
"D" = (
/obj/structure/window/reinforced/full,
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/window/reinforced,
/obj/structure/grille,
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled/dark,
/area/library)
"E" = (
/obj/structure/disposalpipe/segment{
dir = 2;
icon_state = "pipe-c"
},
/turf/simulated/floor/tiled/dark,
/area/library)
"F" = (
/turf/simulated/wall,
/area/library)
"H" = (
/obj/machinery/alarm{
dir = 8;
pixel_x = 22
},
/turf/simulated/floor/tiled/dark,
/area/library)
"K" = (
/obj/structure/window/reinforced/full,
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/window/reinforced{
dir = 8
},
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/grille,
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled/dark,
/area/library)
"L" = (
/obj/machinery/firealarm{
dir = 4;
pixel_x = 24
},
/turf/simulated/floor/tiled/dark,
/area/library)
"M" = (
/obj/structure/window/reinforced/full,
/obj/structure/window/reinforced{
dir = 4
},
/obj/structure/window/reinforced{
dir = 8
},
/obj/structure/window/reinforced,
/obj/structure/grille,
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled/dark,
/area/library)
"O" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
/turf/simulated/floor/tiled/dark,
/area/library)
"T" = (
/obj/structure/window/reinforced/full,
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/window/reinforced{
dir = 8
},
/obj/structure/window/reinforced,
/obj/structure/grille,
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled/dark,
/area/library)
"V" = (
/obj/structure/window/reinforced/full,
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/window/reinforced,
/obj/structure/grille,
/obj/machinery/door/firedoor,
/turf/simulated/floor/tiled/dark,
/area/library)
"W" = (
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/tiled/dark,
/area/library)
"X" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
/turf/simulated/floor/tiled/dark,
/area/library)
"Y" = (
/obj/machinery/light{
dir = 8
},
/turf/simulated/floor/tiled/dark,
/area/hallway/primary/central_one)
(1,1,1) = {"
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
F
F
e
f
F
F
r
"}
(3,1,1) = {"
a
T
n
o
O
g
F
Y
"}
(4,1,1) = {"
a
V
E
W
A
m
z
B
"}
(5,1,1) = {"
a
V
o
h
X
y
F
u
"}
(6,1,1) = {"
a
D
H
o
o
L
F
r
"}
(7,1,1) = {"
a
F
F
K
M
F
F
a
"}
(8,1,1) = {"
a
a
a
a
a
a
a
a
"}

View File

@@ -0,0 +1,17 @@
Greetings, newbean mapper! \
\
The intent of this file is to allow you to more easily be able to follow mapping standards and guidelines.
The following folders will be listed here. If theres been an update and this readme.md is out of date, let a maintainer on your codebase know. For CHOMPStation, this is a staffdev/maintainer, for VOREStation, this is a maintainer, for Polaris, this is also the maintainer role.
* Additional folders TBD.
* Mapping Guides
* This folder exists for newer contributors to physically pull examples from, for example; SMES Wiring.dmm would be for guidance on how to properly wire an SMES. This is not an exhaustive list, but should help the repeated/FAQ questions by allowing one to poke at it in a map editor.
* Public Event Templates
* This folder exists to house templates available to the public. Bear in mind that Event Manager staff will likely not house all event templates publicly for security + future events, but this should be updated once a map is done with or an EM leaves the team and wishes to leave their maps public for future use.
* Public Ship Templates
* This folder exists for SHIP templates that do not normally go into the ships folder (For reference, this ship folder is maps/offmap_vr/om_ships, or overmap/ships). This is for example ships, or for EM-specific, public ships.
* Templates
* This folder is specifically for pre-prepared, ready-to-place templates for things such as drop pods, small maps, etc, things EM-staff will use regularly that are not necessarily related to events.

View File

@@ -0,0 +1,142 @@
"bh" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"bu" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"bG" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/structure/fans/hardlight/colorable{invisibility = 99},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"bL" = (/obj/item/weapon/bone/ribs,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"bX" = (/obj/fire,/turf/simulated/floor/gorefloor,/area/survivalpod)
"cb" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"cA" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"cI" = (/obj/singularity/narsie{l_move_time = 0; move_self = 0; move_speed = 0},/turf/simulated/floor/lava,/area/survivalpod)
"cM" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"eh" = (/turf/simulated/floor/gorefloor2,/area/survivalpod)
"eD" = (/turf/simulated/floor/cult,/area/survivalpod)
"fh" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"fH" = (/obj/structure/grille/broken/cult,/turf/simulated/floor/lava,/area/survivalpod)
"fR" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"gW" = (/obj/effect/map_effect/interval/sound_emitter/punching,/obj/effect/map_effect/interval/effect_emitter/smoke/fire,/turf/simulated/floor/lava,/area/survivalpod)
"gZ" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"he" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"hx" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"hJ" = (/obj/effect/meteor/tunguska,/turf/simulated/floor/lava,/area/survivalpod)
"ib" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"iK" = (/turf/simulated/floor/gorefloor,/area/survivalpod)
"lk" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"lQ" = (/obj/item/weapon/bone/skull/unknown,/turf/simulated/floor/lava,/area/survivalpod)
"nc" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/obj/effect/step_trigger/message{message = "Finally, you gaze upon a horror your sanity fails to understand. The numbness of your body fades as the sound of glass shattering fills your mind, the horrifying sensation of barbed wire tangling your body as every waking second you spend gazing upon this nightmare tightens those bonds. . . Is this what your mortal coil desires?. . ."; once = 0},/turf/simulated/floor/gorefloor,/area/survivalpod)
"nn" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"nA" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"nD" = (/obj/effect/gibspawner/human,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"oj" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"pn" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/structure/gootrap{basecolor = #610B0B; desc = "As if you stepped on a bear trap, you can feel a chilling horror crawling up your spine, gazing upon a pond of maroon fluids you can't help but experience terror upon it"; name = "Spill of fear"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"qo" = (/obj/structure/cult/tome,/turf/simulated/floor/cult,/area/survivalpod)
"qA" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"ry" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/effect/step_trigger/message{message = "You feel a horrible chill run up your spine. . . you really should not continue. . ."; once = 0},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"sS" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/effect/map_effect/interval/sound_emitter/geiger/high,/obj/effect/map_effect/interval/sound_emitter/thunder,/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"tf" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"tq" = (/obj/effect/simple_portal/linked{desc = "It looks like a hole that leads to somewhere, although you can't quite see through it. . . It seems dormant and sealed closed. . ."; name = "Demonic portal"; portal_id = 20},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"tt" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"tz" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"uB" = (/turf/template_noop,/area/survivalpod)
"vf" = (/turf/simulated/wall/cult,/area/survivalpod)
"vT" = (/turf/simulated/floor/lava,/area/survivalpod)
"vV" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"wU" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"xC" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/effect/step_trigger/message{message = "Feels as if you are now going with the motions, your senses betray you as not only your body feels numb but your mind does so too. . ."; once = 0},/turf/simulated/floor/gorefloor,/area/survivalpod)
"xM" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"xV" = (/obj/fire,/turf/simulated/floor/lava,/area/survivalpod)
"yJ" = (/obj/machinery/crystal/lava,/turf/simulated/floor/lava,/area/survivalpod)
"zh" = (/obj/structure/grille/broken/cult,/turf/simulated/floor/cult,/area/survivalpod)
"zn" = (/obj/structure/fans/hardlight/colorable{invisibility = 99},/turf/simulated/floor/gorefloor,/area/survivalpod)
"zJ" = (/obj/structure/grille/cult,/turf/simulated/floor/cult,/area/survivalpod)
"AB" = (/obj/structure/grille/cult,/turf/simulated/floor/lava,/area/survivalpod)
"AL" = (/obj/structure/fans/hardlight/colorable{invisibility = 99},/turf/simulated/floor/gorefloor2,/area/survivalpod)
"AP" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"AR" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Bt" = (/obj/machinery/power/supermatter/shard{color = "red"; simulated = 0},/turf/simulated/floor/gorefloor,/area/survivalpod)
"Bw" = (/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Cy" = (/obj/structure/girder/cult,/turf/simulated/floor/lava,/area/survivalpod)
"CK" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Dn" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"DQ" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"DW" = (/obj/structure/cult/pylon,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"El" = (/obj/structure/simple_door/cult,/turf/simulated/floor/cult,/area/survivalpod)
"Es" = (/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Fv" = (/obj/structure/girder/cult,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"Fz" = (/obj/item/weapon/bone/ribs,/turf/simulated/floor/lava,/area/survivalpod)
"FX" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"GI" = (/obj/machinery/power/supermatter/shard{color = "red"; simulated = 0},/turf/simulated/floor/gorefloor2,/area/survivalpod)
"Hm" = (/obj/structure/girder/cult,/turf/simulated/floor/cult,/area/survivalpod)
"Ia" = (/mob/living/simple_mob/vore/demonAI{faction = "cult"},/turf/simulated/floor/gorefloor2,/area/survivalpod)
"Ib" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"In" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Iy" = (/mob/living/simple_mob/vore/demon/wendigo{faction = "cult"},/turf/simulated/floor/gorefloor2,/area/survivalpod)
"Jb" = (/obj/effect/decal/remains/deer,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"Ji" = (/obj/structure/grille/broken/cult,/obj/fire,/turf/simulated/floor/lava,/area/survivalpod)
"Jt" = (/obj/structure/loot_pile/surface/bones,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"JY" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/gootrap{basecolor = #610B0B; desc = "As if you stepped on a bear trap, you can feel a chilling horror crawling up your spine, gazing upon a pond of maroon fluids you can't help but experience terror upon it"; name = "Spill of fear"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Kb" = (/turf/simulated/goreeyes,/area/survivalpod)
"Ko" = (/obj/structure/constructshell/cult,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"KC" = (/obj/structure/barricade/cutout/cultist,/turf/simulated/floor/cult,/area/survivalpod)
"KI" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"KR" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Lq" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"LQ" = (/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"LY" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"Mq" = (/obj/structure/grille/broken/cult,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"Mv" = (/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"MT" = (/obj/effect/gateway/active/cult,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"Nh" = (/turf/simulated/gore,/area/survivalpod)
"NI" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"NO" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"NV" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"PU" = (/mob/living/simple_mob/vore/demon/covern{faction = "cult"},/turf/simulated/floor/cult,/area/survivalpod)
"Qh" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"QT" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/effect/step_trigger/message{message = "There is nothing in your mind, the sensation of emptiness overwhelms you as if your body itself has been left behind. . . but you can't help but to move on. . ."; once = 0},/turf/simulated/floor/gorefloor,/area/survivalpod)
"RL" = (/obj/effect/decal/remains/deer,/turf/simulated/floor/cult,/area/survivalpod)
"Sa" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Sm" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"Sy" = (/obj/structure/grille/broken/cult,/obj/fire,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"Td" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/gootrap{basecolor = #610B0B; desc = "As if you stepped on a bear trap, you can feel a chilling horror crawling up your spine, gazing upon a pond of maroon fluids you can't help but experience terror upon it"; name = "Spill of fear"},/obj/effect/step_trigger/message{message = "Your body starts to feel numb with every step you take, there is an imposing presence you have yet to face. . . Maybe this isn't as bad."; once = 0},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Th" = (/obj/effect/meteor/irradiated,/turf/simulated/floor/lava,/area/survivalpod)
"TD" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"TU" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"Uc" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"Ut" = (/obj/structure/cult/talisman,/obj/effect/map_effect/interval/sound_emitter/geiger/med,/turf/simulated/floor/cult,/area/survivalpod)
"Ux" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"UH" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"UO" = (/obj/item/weapon/bone/arm,/turf/simulated/floor/lava,/area/survivalpod)
"Vm" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/turf/simulated/floor/gorefloor,/area/survivalpod)
"Vn" = (/obj/structure/cult/forge,/turf/simulated/floor/cult,/area/survivalpod)
"VA" = (/obj/structure/grille/broken/cult,/turf/simulated/floor/gorefloor,/area/survivalpod)
"Yc" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb/dark{color = #8A0808; desc = "You gaze upon a mess of stained barbed wires, the attempt of making sense upon this scratches thoughts from your mind as it fills you with a sense of dread, it's best you don't get tangled in this mess"; name = "Wires of doubt"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Yn" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 4; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
"Yz" = (/mob/living/simple_mob/vore/demon/engorge{faction = "cult"},/turf/simulated/floor/gorefloor2,/area/survivalpod)
"YJ" = (/obj/fire,/turf/simulated/floor/gorefloor2,/area/survivalpod)
"ZZ" = (/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 8; maxhealth = 500; name = "Veil of sanity"},/obj/structure/window/phoronreinforced{desc = "You gaze upon a nightmare of your own mind as it feels as if the horrors before you can harm you, yet the thought of keeping yourself alive cracks upon the glass you gaze at. You have to keep yourself sane. . ."; dir = 1; maxhealth = 500; name = "Veil of sanity"},/obj/effect/spider/stickyweb{color = #8A0808; desc = "Like a leash you can see those strings trying to hold you back, hesitating at the thought only to exasperate the sensation of the reality you are in. . . this may not be an illusion."; name = "Strings of distress"},/turf/simulated/floor/flesh/colour{color = red},/area/survivalpod)
(1,1,1) = {"
NhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhuBuB
NhNhNhehehehNhNhNhNhvTvTehehehehvTNhNhNhNhNhNhNhNhNhNhNhNhKbABABJivTvTxVxVxVxVxVvTvTxVxVvTvTvTNhuBuB
NhNhehehehehehNhNhNhxVYJehDWehYJehNhNhNhNhKbehehYJYJYJehehzniKbXBtABvTvTvTyJvTvTvTvTxVxVxVxVvTNhuBuB
NhNhehehvTvTehehehNhehehehehehehehehNhNhGIehehehiKiKiKiKiKzniKiKiKVAojNVqAvTvTvTvTvTvTvTxVxVvTNhuBuB
NhehehvTvTvTvTYJehKbehehiKbXiKehehehnDNhehiKiKiKbhCKLYpnCKbGcMCKcAncMvMvsSvTxVvTvTvTvTvTvTvTvTNhuBuB
NhehvTvTgWFzvTehehYJiKARJYCKUxiKJbehehKbiKbhCKLYKRehYJehiKzniKiKiKVAheFXTUvTxVvTvTvTcIvTxVxVvTNhuBuB
NhehvTvTvThJvTehehbXARTDiKiKLqUxiKYJehYJiKQTiKehehehJtehehALbXbXBtABvTvTvTyJvTvTvTvTvTvTxVxVvTNhuBuB
NhehehvTxVxVnDehMqojMvxMehehiKlkiKehMTehiKUciKehnDKbNhKbFvALABJifHvTxVxVxVxVvTvTvTxVxVxVvTvTvTNhuBuB
NhYJehehehYJehJbiKYcTDiKehnDehNOUxiKehehiKlkehehehYJYJYJehALKbNhKbNhNhNhNhNhvTvTvTxVxVxVvTvTvTNhuBuB
NhehYzehehehMqehVmMvDniKehFvehiKlkiKYJvTiKvVtfiKiKiKBtiKiKiKiKehehehNhNhNhNhvTxVvTvTvTvTxVvTvTNhuBuB
NhNhNhNhNhKbehiKAPIniKehehKbehiKlkehMqehehehLqhxCKLYpnCKcALYUHehSyYJehvTvTNhNhNhNhNhNhNhNhNhNhNhuBuB
NhNhNhNhNhehehiKryiKehehehVAehiKAPUHehvTyJehiKiKiKiKiKehiKehLqUHiKehYJYJThvTvTNhNhuBuBuBuBuBuBuBuBuB
NhNhNhNhehehehARTDiKYJMTehKbehiKnATDehxVUOehehKovfzhElzJvfKoehvVLYUHYJYJvTvTvTNhuBuBuBuBuBuBuBuBuBuB
NhNhNhehehFvehAPTUiKYJehJtNhYJehiKTdehYJehehKbvfvfRLPURLvfvfehehehYniKehehehvTNhuBuBuBuBuBuBuBuBuBuB
NhNhYJYJehiKiKBwiKiKehehNhNhYJehiKAPtfehehbLehHmeDeDKCeDeDvfehehiKxCehehehehehNhuBuBuBuBuBuBuBuBuBuB
NhehYJehehiKLQIniKehehehNhNhehYJiKAPcbehehYJehvfVnqoUteDeDCylQGIiKAPtfehMTehehNhuBuBuBuBuBuBuBuBuBuB
NhehehiKiKZZTDiKiKehYJNhNhNhehehehNOMvtfiKYJehvfvfzJvfvfzhvTvTehehfhTDiKJbehehNhuBuBuBuBuBuBuBuBuBuB
NhehiKQhtzEsEsbuiKYJYJNhNhNhehehehiKLqMvtfehehMqehehehehehYJYJehehAPTDiKYJehehNhuBuBuBuBuBuBuBuBuBuB
NhehiKgZMvMvMvcbiKYJYJNhNhNhehehJbehiKLqFXUHiKehiKiKiKiKehehiKehSmMvKRiKYJMqNhNhuBuBuBuBuBuBuBuBuBuB
NhehiKYcMvtqMvcbiKYJYJNhNhNhehehehMTnDehiKnACKCKNVibNVIbNVtzDQNVFXwUiKiKYJehNhNhuBuBuBuBuBuBuBuBuBuB
NhehiKYcMvMvMvcbiKehehNhNhNhNhehehKbehehYJehiKehLqFXKINIFXFXFXnniKehehehehehNhNhuBuBuBuBuBuBuBuBuBuB
NhehiKfRSaNINIttiKehNhNhNhNhNhehehehehehYJehehehiKiKiKehiKiKiKiKehYJehehehNhNhNhuBuBuBuBuBuBuBuBuBuB
NhNhehiKiKiKiKiKehehNhNhNhNhNhehehehehehehNhKbNhNhehKbehehehMqehehehehKbNhNhNhNhuBuBuBuBuBuBuBuBuBuB
NhNhNhehehehIaehehehNhNhNhNhNhIyehehehNhNhNhNhNhNhNhNhNhNhehehehehehNhNhNhNhNhNhuBuBuBuBuBuBuBuBuBuB
NhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhNhuBuBuBuBuBuBuBuBuBuB
"}

View File

@@ -0,0 +1,59 @@
"a" = (/turf/simulated/shuttle/wall/voidcraft/survival,/area/survivalpod)
"b" = (/obj/structure/bed/padded,/obj/item/weapon/bedsheet/medical,/obj/structure/curtain/open/privacy,/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"c" = (/obj/structure/window/reinforced/survival_pod{dir = 1},/obj/machinery/disposal,/obj/effect/floor_decal/industrial/warning/full,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"d" = (/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"e" = (/obj/machinery/light/small,/obj/structure/sink{dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"f" = (/obj/structure/window/reinforced/survival_pod{dir = 1},/obj/structure/bed/chair/comfy/black{dir = 8},/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"g" = (/obj/structure/table/glass,/obj/structure/closet/secure_closet/guncabinet/phase{pixel_y = -32},/obj/item/weapon/gun/energy/locked/frontier/holdout,/obj/item/weapon/gun/energy/locked/frontier/holdout,/obj/item/clothing/accessory/permit/gun/planetside,/obj/item/clothing/accessory/permit/gun/planetside,/obj/item/clothing/accessory/holster/waist,/obj/item/clothing/accessory/holster/waist,/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"h" = (/obj/structure/sign/mining/survival{dir = 8},/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner,/area/survivalpod)
"i" = (/obj/effect/floor_decal/industrial/danger/full,/obj/structure/fans/tiny,/obj/machinery/door/airlock/voidcraft/survival_pod,/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"j" = (/obj/structure/sign/mining/survival,/turf/simulated/shuttle/wall/voidcraft/survival,/area/survivalpod)
"k" = (/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"l" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"m" = (/obj/structure/disposalpipe/segment,/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner,/area/survivalpod)
"n" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/device/fbp_backup_cell,/obj/item/device/fbp_backup_cell,/obj/item/device/fbp_backup_cell,/obj/item/device/fbp_backup_cell,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/glucose,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/fitnessflask/glucose,/obj/item/weapon/storage/box/freezer,/obj/item/weapon/storage/box/freezer,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/glass/beaker,/obj/machinery/light{dir = 1},/obj/item/device/defib_kit/loaded,/obj/item/device/defib_kit/loaded,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"o" = (/obj/item/device/gps/computer,/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"p" = (/obj/structure/window/reinforced/survival_pod{dir = 1},/obj/structure/toilet{dir = 8},/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"s" = (/obj/structure/sign/mining/survival{dir = 1},/turf/simulated/shuttle/wall/voidcraft/survival,/area/survivalpod)
"t" = (/obj/structure/window/reinforced/survival_pod{dir = 8},/obj/structure/window/reinforced/survival_pod{dir = 4},/obj/structure/window/reinforced/survival_pod{dir = 1},/obj/structure/window/reinforced/survival_pod,/obj/structure/grille,/obj/structure/curtain/black,/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"u" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"v" = (/obj/structure/window/reinforced/survival_pod{dir = 1},/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"w" = (/obj/structure/table/steel_reinforced,/obj/machinery/chemical_dispenser/full,/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"x" = (/obj/structure/sign/redcross,/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner,/area/survivalpod)
"z" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/sign/mining/survival{dir = 4},/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner,/area/survivalpod)
"A" = (/obj/machinery/shower{dir = 8},/obj/item/weapon/soap/deluxe,/obj/structure/curtain,/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"B" = (/obj/structure/table/survival_pod,/obj/item/weapon/storage/firstaid/adv,/obj/item/weapon/storage/firstaid/o2{pixel_x = 5; pixel_y = 5},/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"C" = (/obj/effect/floor_decal/industrial/outline,/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"D" = (/obj/structure/window/reinforced/survival_pod{dir = 1},/obj/structure/table/gamblingtable,/obj/item/device/starcaster_news,/obj/item/weapon/deck/cards,/obj/structure/fireaxecabinet{pixel_y = 27},/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"E" = (/obj/machinery/optable,/obj/machinery/oxygen_pump/anesthetic{pixel_x = 32},/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"F" = (/obj/machinery/door/window/survival_pod{dir = 1},/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"G" = (/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner,/area/survivalpod)
"H" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/box/bodybags,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/mask/muzzle,/obj/item/device/sleevemate,/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 8},/obj/item/roller{pixel_y = 8},/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"; pixel_x = 2; pixel_y = 2},/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"; pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/firstaid/surgery,/obj/item/device/defib_kit/compact/loaded,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/weapon/extinguisher/mini,/obj/item/weapon/extinguisher/mini,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/obj/item/device/binoculars,/obj/item/device/bluespaceradio,/obj/item/device/radio/emergency,/obj/item/device/radio/emergency,/obj/item/weapon/storage/box/survival/space,/obj/item/weapon/storage/box/survival/space,/obj/item/weapon/storage/box/survival/space,/obj/item/weapon/storage/box/survival/space,/obj/item/weapon/storage/box/survival/comp,/obj/item/weapon/storage/box/survival/comp,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/toy/crossbow,/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"I" = (/obj/machinery/light,/obj/machinery/sleeper{dir = 4},/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"J" = (/obj/machinery/sleep_console{dir = 4},/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"K" = (/obj/structure/fans,/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"M" = (/obj/structure/sign/nosmoking_2,/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner,/area/survivalpod)
"N" = (/obj/structure/sign/mining,/turf/simulated/shuttle/wall/voidcraft/survival/hard_corner,/area/survivalpod)
"O" = (/obj/structure/disposalpipe/segment,/turf/simulated/shuttle/wall/voidcraft/survival,/area/survivalpod)
"P" = (/obj/structure/sign/mining/survival{dir = 4},/turf/simulated/shuttle/wall/voidcraft/survival,/area/survivalpod)
"R" = (/obj/structure/window/reinforced/survival_pod{dir = 1},/obj/machinery/vending/medical{req_access = null; req_log_access = null},/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"S" = (/obj/machinery/iv_drip,/obj/machinery/iv_drip,/obj/machinery/vending/wallmed1{dir = 8; pixel_x = 22; pixel_y = 3},/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"T" = (/obj/machinery/iv_drip,/obj/effect/floor_decal/industrial/loading{dir = 1},/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"U" = (/obj/structure/table/survival_pod,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/fire{pixel_x = 5; pixel_y = 5},/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"V" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/mining/survival{dir = 4},/turf/simulated/shuttle/wall/voidcraft/survival,/area/survivalpod)
"W" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/masks,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 4},/obj/machinery/newscaster{pixel_y = -30},/turf/simulated/shuttle/floor/voidcraft/dark,/area/survivalpod)
"X" = (/obj/structure/sign/mining/survival{dir = 8},/turf/simulated/shuttle/wall/voidcraft/survival,/area/survivalpod)
"Y" = (/obj/structure/table/survival_pod,/obj/item/weapon/storage/firstaid/surgery,/obj/structure/sink/kitchen{dir = 4; pixel_x = -13},/obj/machinery/recharger,/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
"Z" = (/obj/machinery/door/window/survival_pod{dir = 1},/turf/simulated/shuttle/floor/voidcraft/light,/area/survivalpod)
(1,1,1) = {"
asGGNGtsO
XKnoGHubV
GlTEGBkSm
GYkwGUkbm
hRFvDfFcz
idddddddi
xCCCCMZpx
XJIgWGeAP
ajGGNGGja
"}

View File

@@ -22570,6 +22570,9 @@
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
/obj/machinery/light{
dir = 4
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/shuttle_pad)
"aKj" = (
@@ -34995,6 +34998,7 @@
id = "secreet";
name = "Tintable Window"
},
<<<<<<< HEAD
/obj/structure/window/reinforced/polarized{
id = "secreet";
name = "Tintable Window"
@@ -35002,6 +35006,12 @@
/obj/machinery/door/firedoor/glass,
/turf/simulated/floor/plating,
/area/tether/surfacebase/barbackmaintenance)
=======
/obj/effect/floor_decal/techfloor,
/obj/machinery/light,
/turf/simulated/floor/tiled/techfloor,
/area/crew_quarters/sleep/cryo)
>>>>>>> 6a2e26314e... Merge pull request #12739 from GhostActual/late_at_night
"bhc" = (
/obj/structure/grille,
/obj/structure/cable/green{
@@ -35161,11 +35171,9 @@
/turf/simulated/floor/tiled/monotile,
/area/tether/surfacebase/southhall)
"bhp" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
/obj/structure/disposalpipe/segment,
/obj/machinery/light{
dir = 8
dir = 4
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/southhall)
@@ -41616,12 +41624,21 @@
},
/turf/simulated/floor/wood,
/area/crew_quarters/recreation_area)
<<<<<<< HEAD
"ooI" = (
/obj/effect/floor_decal/techfloor/orange{
dir = 5
},
/turf/simulated/floor/tiled/techfloor,
/area/teleporter/departing)
=======
"ome" = (
/obj/machinery/light{
dir = 8
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/southhall)
>>>>>>> 6a2e26314e... Merge pull request #12739 from GhostActual/late_at_night
"ooM" = (
/obj/machinery/atmospherics/pipe/simple/hidden/yellow,
/turf/simulated/floor/tiled/monofloor{
@@ -42276,6 +42293,25 @@
},
/turf/simulated/floor/tiled,
/area/hallway/lower/third_south)
<<<<<<< HEAD
=======
"qvs" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4
},
/obj/structure/cable/orange{
d1 = 1;
d2 = 2;
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
/obj/machinery/light{
dir = 4
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/shuttle_pad)
>>>>>>> 6a2e26314e... Merge pull request #12739 from GhostActual/late_at_night
"qze" = (
/obj/structure/disposalpipe/segment,
/obj/effect/floor_decal/borderfloor{
@@ -313112,9 +313148,15 @@ bhi
qbo
beU
bhm
<<<<<<< HEAD
beU
bhp
beU
=======
fsd
qbo
ome
>>>>>>> 6a2e26314e... Merge pull request #12739 from GhostActual/late_at_night
beU
gRG
laB
@@ -313394,7 +313436,7 @@ hId
bgm
hId
ely
hId
bhp
jCE
hId
bhq

View File

@@ -1199,6 +1199,9 @@ const VoreUserPreferences = (props, context) => {
liq_rec,
liq_giv,
autotransferable,
drop_vore,
stumble_vore,
slip_vore,
} = data.prefs;
const {
@@ -1315,6 +1318,48 @@ const VoreUserPreferences = (props, context) => {
disabled: "Spontaneous Pred Disabled",
},
},
toggle_drop_vore: {
action: "toggle_drop_vore",
test: drop_vore,
tooltip: {
main: "Allows for dropnom spontaneous vore to occur. "
+ "Note, you still need spontaneous vore pred and/or prey enabled.",
enable: "Click here to allow for dropnoms.",
disable: "Click here to disable dropnoms.",
},
content: {
enabled: "Drop Noms Enabled",
disabled: "Drop Noms Disabled",
},
},
toggle_slip_vore: {
action: "toggle_slip_vore",
test: slip_vore,
tooltip: {
main: "Allows for slip related spontaneous vore to occur. "
+ "Note, you still need spontaneous vore pred and/or prey enabled.",
enable: "Click here to allow for slip vore.",
disable: "Click here to disable slip vore.",
},
content: {
enabled: "Slip Vore Enabled",
disabled: "Slip Vore Disabled",
},
},
toggle_stumble_vore: {
action: "toggle_stumble_vore",
test: stumble_vore,
tooltip: {
main: "Allows for stumble related spontaneous vore to occur. "
+ " Note, you still need spontaneous vore pred and/or prey enabled.",
enable: "Click here to allow for stumble vore.",
disable: "Click here to disable stumble vore.",
},
content: {
enabled: "Stumble Vore Enabled",
disabled: "Stumble Vore Disabled",
},
},
spawnbelly: {
action: "toggle_latejoin_vore",
test: latejoin_vore,
@@ -1526,6 +1571,15 @@ const VoreUserPreferences = (props, context) => {
<Flex.Item basis="32%" grow={1}>
<VoreUserPreferenceItem spec={preferences.dropnom_pred} />
</Flex.Item>
<Flex.Item basis="32%">
<VoreUserPreferenceItem spec={preferences.toggle_drop_vore} />
</Flex.Item>
<Flex.Item basis="32%">
<VoreUserPreferenceItem spec={preferences.toggle_slip_vore} />
</Flex.Item>
<Flex.Item basis="32%" grow={1}>
<VoreUserPreferenceItem spec={preferences.toggle_stumble_vore} />
</Flex.Item>
<Flex.Item basis="32%">
<VoreUserPreferenceItem spec={preferences.spawnbelly} />
</Flex.Item>

File diff suppressed because one or more lines are too long

View File

@@ -88,6 +88,7 @@
#include "code\__defines\shuttle.dm"
#include "code\__defines\sound.dm"
#include "code\__defines\spaceman_dmm.dm"
#include "code\__defines\span_vr.dm"
#include "code\__defines\species_languages.dm"
#include "code\__defines\species_languages_vr.dm"
#include "code\__defines\species_languages_YW.dm"
@@ -2511,6 +2512,7 @@
#include "code\modules\games\dice.dm"
#include "code\modules\games\spaceball_cards.dm"
#include "code\modules\games\tarot.dm"
#include "code\modules\games\schnapsen_vr.dm"
#include "code\modules\games\wizoff.dm"
#include "code\modules\genetics\side_effects.dm"
#include "code\modules\ghosttrap\trap.dm"
@@ -4282,6 +4284,7 @@
#include "code\modules\vore\eating\silicon_vr.dm"
#include "code\modules\vore\eating\simple_animal_vr.dm"
#include "code\modules\vore\eating\slipvore_vr.dm"
#include "code\modules\vore\eating\stumblevore_vr.dm"
#include "code\modules\vore\eating\transforming_vr.dm"
#include "code\modules\vore\eating\vore_vr.dm"
#include "code\modules\vore\eating\vorehooks_vr.dm"