mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-24 20:47:43 +01:00
Merge remote-tracking branch 'VOREStation/master' into nova-basicfixes
This commit is contained in:
@@ -8,11 +8,12 @@
|
||||
#define CHANNEL_AMBIENCE 1018
|
||||
#define CHANNEL_BUZZ 1017
|
||||
#define CHANNEL_BICYCLE 1016
|
||||
#define CHANNEL_PREYLOOP 1015 //VORESTATION ADD - Fancy Sound Loop channel
|
||||
|
||||
//THIS SHOULD ALWAYS BE THE LOWEST ONE!
|
||||
//KEEP IT UPDATED
|
||||
|
||||
#define CHANNEL_HIGHEST_AVAILABLE 1015
|
||||
#define CHANNEL_HIGHEST_AVAILABLE 1014 //VORESTATION EDIT - Fancy Sound Loop channel from 1015
|
||||
|
||||
#define SOUND_MINIMUM_PRESSURE 10
|
||||
#define FALLOFF_SOUNDS 0.5
|
||||
|
||||
@@ -42,40 +42,8 @@ var/global/list/item_vore_blacklist = list(
|
||||
/obj/item/weapon/disk/nuclear,
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/roiz)
|
||||
|
||||
var/global/list/digestion_sounds = list(
|
||||
'sound/vore/digest1.ogg',
|
||||
'sound/vore/digest2.ogg',
|
||||
'sound/vore/digest3.ogg',
|
||||
'sound/vore/digest4.ogg',
|
||||
'sound/vore/digest5.ogg',
|
||||
'sound/vore/digest6.ogg',
|
||||
'sound/vore/digest7.ogg',
|
||||
'sound/vore/digest8.ogg',
|
||||
'sound/vore/digest9.ogg',
|
||||
'sound/vore/digest10.ogg',
|
||||
'sound/vore/digest11.ogg',
|
||||
'sound/vore/digest12.ogg')
|
||||
|
||||
var/global/list/death_sounds = list(
|
||||
'sound/vore/death1.ogg',
|
||||
'sound/vore/death2.ogg',
|
||||
'sound/vore/death3.ogg',
|
||||
'sound/vore/death4.ogg',
|
||||
'sound/vore/death5.ogg',
|
||||
'sound/vore/death6.ogg',
|
||||
'sound/vore/death7.ogg',
|
||||
'sound/vore/death8.ogg',
|
||||
'sound/vore/death9.ogg',
|
||||
'sound/vore/death10.ogg')
|
||||
|
||||
var/global/list/hunger_sounds = list(
|
||||
'sound/vore/growl1.ogg',
|
||||
'sound/vore/growl2.ogg',
|
||||
'sound/vore/growl3.ogg',
|
||||
'sound/vore/growl4.ogg',
|
||||
'sound/vore/growl5.ogg')
|
||||
|
||||
var/global/list/vore_sounds = list(
|
||||
//Classic Vore sounds
|
||||
var/global/list/classic_vore_sounds = list(
|
||||
"Gulp" = 'sound/vore/gulp.ogg',
|
||||
"Insert" = 'sound/vore/insert.ogg',
|
||||
"Insertion1" = 'sound/vore/insertion1.ogg',
|
||||
@@ -86,15 +54,55 @@ var/global/list/vore_sounds = list(
|
||||
"Squish2" = 'sound/vore/squish2.ogg',
|
||||
"Squish3" = 'sound/vore/squish3.ogg',
|
||||
"Squish4" = 'sound/vore/squish4.ogg',
|
||||
"Rustle (cloth)" = 'sound/effects/rustle5.ogg',
|
||||
"Rustle (cloth)" = 'sound/effects/rustle1.ogg',
|
||||
"Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg',
|
||||
"Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg',
|
||||
"Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg',
|
||||
"Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg',
|
||||
"None" = null)
|
||||
|
||||
var/global/list/struggle_sounds = list(
|
||||
"Squish1" = 'sound/vore/squish1.ogg',
|
||||
"Squish2" = 'sound/vore/squish2.ogg',
|
||||
"Squish3" = 'sound/vore/squish3.ogg',
|
||||
"Squish4" = 'sound/vore/squish4.ogg')
|
||||
var/global/list/classic_release_sounds = list(
|
||||
"Rustle (cloth)" = 'sound/effects/rustle1.ogg',
|
||||
"Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg',
|
||||
"Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg',
|
||||
"Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg',
|
||||
"Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg',
|
||||
"Splatter" = 'sound/effects/splat.ogg',
|
||||
"None" = null
|
||||
)
|
||||
|
||||
//Poojy's Fancy Sounds
|
||||
var/global/list/fancy_vore_sounds = list(
|
||||
"Gulp" = 'sound/vore/sunesound/pred/swallow_01.ogg',
|
||||
"Swallow" = 'sound/vore/sunesound/pred/swallow_02.ogg',
|
||||
"Insertion1" = 'sound/vore/sunesound/pred/insertion_01.ogg',
|
||||
"Insertion2" = 'sound/vore/sunesound/pred/insertion_02.ogg',
|
||||
"Tauric Swallow" = 'sound/vore/sunesound/pred/taurswallow.ogg',
|
||||
"Stomach Move" = 'sound/vore/sunesound/pred/stomachmove.ogg',
|
||||
"Schlorp" = 'sound/vore/sunesound/pred/schlorp.ogg',
|
||||
"Squish1" = 'sound/vore/sunesound/pred/squish_01.ogg',
|
||||
"Squish2" = 'sound/vore/sunesound/pred/squish_02.ogg',
|
||||
"Squish3" = 'sound/vore/sunesound/pred/squish_03.ogg',
|
||||
"Squish4" = 'sound/vore/sunesound/pred/squish_04.ogg',
|
||||
"Rustle (cloth)" = 'sound/effects/rustle1.ogg',
|
||||
"Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg',
|
||||
"Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg',
|
||||
"Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg',
|
||||
"Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg',
|
||||
"None" = null
|
||||
)
|
||||
|
||||
var/global/list/fancy_release_sounds = list(
|
||||
"Rustle (cloth)" = 'sound/effects/rustle1.ogg',
|
||||
"Rustle 2 (cloth)" = 'sound/effects/rustle2.ogg',
|
||||
"Rustle 3 (cloth)" = 'sound/effects/rustle3.ogg',
|
||||
"Rustle 4 (cloth)" = 'sound/effects/rustle4.ogg',
|
||||
"Rustle 5 (cloth)" = 'sound/effects/rustle5.ogg',
|
||||
"Stomach Move" = 'sound/vore/sunesound/pred/stomachmove.ogg',
|
||||
"Pred Escape" = 'sound/vore/sunesound/pred/escape.ogg',
|
||||
"Splatter" = 'sound/effects/splat.ogg',
|
||||
"None" = null
|
||||
)
|
||||
|
||||
var/global/list/global_vore_egg_types = list(
|
||||
"Unathi" = UNATHI_EGG,
|
||||
|
||||
@@ -105,7 +105,7 @@ SUBSYSTEM_DEF(vote)
|
||||
factor = 1.4
|
||||
choices["Initiate Crew Transfer"] = round(choices["Initiate Crew Transfer"] * factor)
|
||||
world << "<font color='purple'>Crew Transfer Factor: [factor]</font>"
|
||||
greatest_votes = max(choices["Initiate Crew Transfer"], choices["Continue The Round"])
|
||||
greatest_votes = max(choices["Initiate Crew Transfer"], choices["Extend the Shift"]) //VOREStation Edit
|
||||
|
||||
. = list() // Get all options with that many votes and return them in a list
|
||||
if(greatest_votes)
|
||||
@@ -220,8 +220,8 @@ SUBSYSTEM_DEF(vote)
|
||||
if(ticker.current_state <= GAME_STATE_SETTING_UP)
|
||||
initiator_key << "The crew transfer button has been disabled!"
|
||||
return 0
|
||||
question = "End the shift?"
|
||||
choices.Add("Initiate Crew Transfer", "Continue The Round")
|
||||
question = "Your PDA beeps with a message from Central. Would you like an additional hour to finish ongoing projects?" //VOREStation Edit
|
||||
choices.Add("Initiate Crew Transfer", "Extend the Shift") //VOREStation Edit
|
||||
if(VOTE_ADD_ANTAGONIST)
|
||||
if(!config.allow_extra_antags || ticker.current_state >= GAME_STATE_SETTING_UP)
|
||||
return 0
|
||||
|
||||
@@ -32,3 +32,21 @@
|
||||
name = "magazine (.44 rubber)"
|
||||
path =/obj/item/ammo_magazine/m44/rubber
|
||||
hidden = 1
|
||||
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mm
|
||||
name = "SMG magazine (9mm)"
|
||||
path = /obj/item/ammo_magazine/m9mml
|
||||
hidden = 1
|
||||
/* De-coded?
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mmr
|
||||
name = "SMG magazine (9mm rubber)"
|
||||
path = /obj/item/ammo_magazine/m9mml/rubber
|
||||
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mmp
|
||||
name = "SMG magazine (9mm practice)"
|
||||
path = /obj/item/ammo_magazine/m9mml/practice
|
||||
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mmf
|
||||
name = "SMG magazine (9mm flash)"
|
||||
path = /obj/item/ammo_magazine/m9mml/flash
|
||||
*/
|
||||
@@ -1,17 +0,0 @@
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mm
|
||||
name = "SMG magazine (9mm)"
|
||||
path = /obj/item/ammo_magazine/m9mml
|
||||
hidden = 1
|
||||
/* De-coded?
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mmr
|
||||
name = "SMG magazine (9mm rubber)"
|
||||
path = /obj/item/ammo_magazine/m9mml/rubber
|
||||
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mmp
|
||||
name = "SMG magazine (9mm practice)"
|
||||
path = /obj/item/ammo_magazine/m9mml/practice
|
||||
|
||||
/datum/category_item/autolathe/arms/classic_smg_9mmf
|
||||
name = "SMG magazine (9mm flash)"
|
||||
path = /obj/item/ammo_magazine/m9mml/flash
|
||||
*/
|
||||
@@ -137,6 +137,46 @@
|
||||
if ("button") soundin = pick('sound/machines/button1.ogg','sound/machines/button2.ogg','sound/machines/button3.ogg','sound/machines/button4.ogg')
|
||||
if ("switch") soundin = pick('sound/machines/switch1.ogg','sound/machines/switch2.ogg','sound/machines/switch3.ogg','sound/machines/switch4.ogg')
|
||||
if ("casing_sound") soundin = pick('sound/weapons/casingfall1.ogg','sound/weapons/casingfall2.ogg','sound/weapons/casingfall3.ogg')
|
||||
//VORESTATION EDIT - vore sounds for better performance
|
||||
if ("hunger_sounds") soundin = pick('sound/vore/growl1.ogg','sound/vore/growl2.ogg','sound/vore/growl3.ogg','sound/vore/growl4.ogg','sound/vore/growl5.ogg')
|
||||
|
||||
if("classic_digestion_sounds") soundin = pick(
|
||||
'sound/vore/digest1.ogg','sound/vore/digest2.ogg','sound/vore/digest3.ogg','sound/vore/digest4.ogg',
|
||||
'sound/vore/digest5.ogg','sound/vore/digest6.ogg','sound/vore/digest7.ogg','sound/vore/digest8.ogg',
|
||||
'sound/vore/digest9.ogg','sound/vore/digest10.ogg','sound/vore/digest11.ogg','sound/vore/digest12.ogg')
|
||||
if("classic_death_sounds") soundin = pick(
|
||||
'sound/vore/death1.ogg','sound/vore/death2.ogg','sound/vore/death3.ogg','sound/vore/death4.ogg','sound/vore/death5.ogg',
|
||||
'sound/vore/death6.ogg','sound/vore/death7.ogg','sound/vore/death8.ogg','sound/vore/death9.ogg','sound/vore/death10.ogg')
|
||||
if("classic_struggle_sounds") soundin = pick('sound/vore/squish1.ogg','sound/vore/squish2.ogg','sound/vore/squish3.ogg','sound/vore/squish4.ogg')
|
||||
|
||||
if("fancy_prey_struggle") soundin = pick(
|
||||
'sound/vore/sunesound/prey/struggle_01.ogg','sound/vore/sunesound/prey/struggle_02.ogg','sound/vore/sunesound/prey/struggle_03.ogg',
|
||||
'sound/vore/sunesound/prey/struggle_04.ogg','sound/vore/sunesound/prey/struggle_05.ogg')
|
||||
if("fancy_digest_pred") soundin = pick(
|
||||
'sound/vore/sunesound/pred/digest_01.ogg','sound/vore/sunesound/pred/digest_02.ogg','sound/vore/sunesound/pred/digest_03.ogg',
|
||||
'sound/vore/sunesound/pred/digest_04.ogg','sound/vore/sunesound/pred/digest_05.ogg','sound/vore/sunesound/pred/digest_06.ogg',
|
||||
'sound/vore/sunesound/pred/digest_07.ogg','sound/vore/sunesound/pred/digest_08.ogg','sound/vore/sunesound/pred/digest_09.ogg',
|
||||
'sound/vore/sunesound/pred/digest_10.ogg','sound/vore/sunesound/pred/digest_11.ogg','sound/vore/sunesound/pred/digest_12.ogg',
|
||||
'sound/vore/sunesound/pred/digest_13.ogg','sound/vore/sunesound/pred/digest_14.ogg','sound/vore/sunesound/pred/digest_15.ogg',
|
||||
'sound/vore/sunesound/pred/digest_16.ogg','sound/vore/sunesound/pred/digest_17.ogg','sound/vore/sunesound/pred/digest_18.ogg')
|
||||
if("fancy_death_pred") soundin = pick(
|
||||
'sound/vore/sunesound/pred/death_01.ogg','sound/vore/sunesound/pred/death_02.ogg','sound/vore/sunesound/pred/death_03.ogg',
|
||||
'sound/vore/sunesound/pred/death_04.ogg','sound/vore/sunesound/pred/death_05.ogg','sound/vore/sunesound/pred/death_06.ogg',
|
||||
'sound/vore/sunesound/pred/death_07.ogg','sound/vore/sunesound/pred/death_08.ogg','sound/vore/sunesound/pred/death_09.ogg',
|
||||
'sound/vore/sunesound/pred/death_10.ogg')
|
||||
if("fancy_digest_prey") soundin = pick(
|
||||
'sound/vore/sunesound/prey/digest_01.ogg','sound/vore/sunesound/prey/digest_02.ogg','sound/vore/sunesound/prey/digest_03.ogg',
|
||||
'sound/vore/sunesound/prey/digest_04.ogg','sound/vore/sunesound/prey/digest_05.ogg','sound/vore/sunesound/prey/digest_06.ogg',
|
||||
'sound/vore/sunesound/prey/digest_07.ogg','sound/vore/sunesound/prey/digest_08.ogg','sound/vore/sunesound/prey/digest_09.ogg',
|
||||
'sound/vore/sunesound/prey/digest_10.ogg','sound/vore/sunesound/prey/digest_11.ogg','sound/vore/sunesound/prey/digest_12.ogg',
|
||||
'sound/vore/sunesound/prey/digest_13.ogg','sound/vore/sunesound/prey/digest_14.ogg','sound/vore/sunesound/prey/digest_15.ogg',
|
||||
'sound/vore/sunesound/prey/digest_16.ogg','sound/vore/sunesound/prey/digest_17.ogg','sound/vore/sunesound/prey/digest_18.ogg')
|
||||
if("fancy_death_prey") soundin = pick(
|
||||
'sound/vore/sunesound/prey/death_01.ogg','sound/vore/sunesound/prey/death_02.ogg','sound/vore/sunesound/prey/death_03.ogg',
|
||||
'sound/vore/sunesound/prey/death_04.ogg','sound/vore/sunesound/prey/death_05.ogg','sound/vore/sunesound/prey/death_06.ogg',
|
||||
'sound/vore/sunesound/prey/death_07.ogg','sound/vore/sunesound/prey/death_08.ogg','sound/vore/sunesound/prey/death_09.ogg',
|
||||
'sound/vore/sunesound/prey/death_10.ogg')
|
||||
//END VORESTATION EDIT
|
||||
return soundin
|
||||
|
||||
//Are these even used?
|
||||
|
||||
@@ -2,3 +2,35 @@
|
||||
datum/preferences
|
||||
var/show_in_directory = 1 //TFF 5/8/19 - show in Character Directory
|
||||
var/sensorpref = 5 //TFF 5/8/19 - set character's suit sensor level
|
||||
|
||||
//Why weren't these in game toggles already?
|
||||
/client/verb/toggle_eating_noises()
|
||||
set name = "Eating Noises"
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles Vore Eating noises."
|
||||
|
||||
var/pref_path = /datum/client_preference/eating_noises
|
||||
|
||||
toggle_preference(pref_path)
|
||||
|
||||
src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear eating related vore noises."
|
||||
|
||||
SScharacter_setup.queue_preferences_save(prefs)
|
||||
|
||||
feedback_add_details("admin_verb","TEatNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
|
||||
/client/verb/toggle_digestion_noises()
|
||||
set name = "Digestion Noises"
|
||||
set category = "Preferences"
|
||||
set desc = "Toggles Vore Digestion noises."
|
||||
|
||||
var/pref_path = /datum/client_preference/digestion_noises
|
||||
|
||||
toggle_preference(pref_path)
|
||||
|
||||
src << "You will [ (is_preference_enabled(pref_path)) ? "now" : "no longer"] hear digestion related vore noises."
|
||||
|
||||
SScharacter_setup.queue_preferences_save(prefs)
|
||||
|
||||
feedback_add_details("admin_verb","TDigestNoise") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -923,7 +923,7 @@
|
||||
overeatduration -= 2 //doubled the unfat rate
|
||||
|
||||
if(noisy == TRUE && nutrition < 250 && prob(10)) //VOREStation edit for hunger noises.
|
||||
var/growlsound = pick(hunger_sounds)
|
||||
var/sound/growlsound = sound(get_sfx("hunger_sounds"))
|
||||
var/growlmultiplier = 100 - (nutrition / 250 * 100)
|
||||
playsound(src, growlsound, vol = growlmultiplier, vary = 1, falloff = 0.1, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises)
|
||||
// VOREStation Edit End
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
#define AB_SHIFT_NONE 0
|
||||
#define AB_SHIFT_PASSIVE 1
|
||||
#define AB_SHIFT_ACTIVE 2
|
||||
@@ -0,0 +1,86 @@
|
||||
/mob/living/simple_mob/vore/demon
|
||||
name = "Rift Walker"
|
||||
desc = "A large bipedal creature, body a mix of dark fur and scales. Marks on the creatures body pulse slowly with red light"
|
||||
|
||||
icon_state = "boxfox"
|
||||
icon_living = "boxfox"
|
||||
icon_dead = "boxfox_dead"
|
||||
icon_rest = "boxfox_rest"
|
||||
icon = 'icons/mob/demon_vr.dmi'
|
||||
|
||||
faction = "demon"
|
||||
maxHealth = 30
|
||||
health = 30
|
||||
movement_cooldown = 0
|
||||
|
||||
min_oxy = 0
|
||||
max_oxy = 0
|
||||
min_tox = 0
|
||||
max_tox = 0
|
||||
min_co2 = 0
|
||||
max_co2 = 0
|
||||
min_n2 = 0
|
||||
max_n2 = 0
|
||||
minbodytemp = 0
|
||||
maxbodytemp = INFINITY
|
||||
|
||||
response_help = "touches"
|
||||
response_disarm = "pushes"
|
||||
response_harm = "hits"
|
||||
|
||||
melee_damage_lower = 3
|
||||
melee_damage_upper = 1
|
||||
attacktext = list("clawed")
|
||||
|
||||
vore_active = TRUE
|
||||
vore_icons = SA_ICON_LIVING
|
||||
|
||||
var/shifted_out = FALSE
|
||||
var/shift_state = AB_SHIFT_NONE
|
||||
var/last_shift = 0
|
||||
var/is_shifting = FALSE
|
||||
|
||||
/mob/living/simple_mob/vore/demon/init_vore()
|
||||
..()
|
||||
var/obj/belly/B = vore_selected
|
||||
B.name = "Stomach"
|
||||
B.desc = "You slide down the slick, slippery gullet of the creature. It's warm, and the air is thick. You can feel the doughy walls of the creatures gut push and knead into your form! Slimy juices coat your form stinging against your flesh as they waste no time to start digesting you. The creature's heartbeat and the gurgling of their stomach are all you can hear as your jostled about, treated like nothing but food."
|
||||
|
||||
/mob/living/simple_mob/vore/demon/UnarmedAttack()
|
||||
if(shifted_out)
|
||||
return FALSE
|
||||
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_mob/vore/demon/can_fall()
|
||||
if(shifted_out)
|
||||
return FALSE
|
||||
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/vore/demon/zMove(direction)
|
||||
if(shifted_out)
|
||||
var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src)
|
||||
if(destination)
|
||||
forceMove(destination)
|
||||
return TRUE
|
||||
|
||||
return ..()
|
||||
|
||||
/mob/living/simple_mob/vore/demon/Life()
|
||||
. = ..()
|
||||
if(shifted_out)
|
||||
density = FALSE
|
||||
|
||||
/mob/living/simple_mob/vore/demon/handle_atmos()
|
||||
if(shifted_out)
|
||||
return
|
||||
else
|
||||
return .=..()
|
||||
|
||||
/mob/living/simple_mob/vore/demon/update_canmove()
|
||||
if(is_shifting)
|
||||
canmove = FALSE
|
||||
return canmove
|
||||
else
|
||||
return ..()
|
||||
@@ -0,0 +1,214 @@
|
||||
/mob/living/simple_mob/vore/demon/verb/blood_crawl()
|
||||
set name = "Bloodcrawl"
|
||||
set desc = "Shift out of reality using blood as your gateway"
|
||||
set category = "Abilities"
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
if(!T.CanPass(src,T) || loc != T)
|
||||
to_chat(src,"<span class='warning'>You can't use that here!</span>")
|
||||
return FALSE
|
||||
|
||||
if(shift_state && shift_state == AB_SHIFT_ACTIVE)
|
||||
to_chat(src,"<span class='warning'>You can't do a shift while actively shifting!</span>")
|
||||
return FALSE
|
||||
|
||||
if(!(locate(/obj/effect/decal/cleanable/blood) in src.loc))
|
||||
to_chat(src,"<span class='warning'>You need blood to shift between realities!</span>")
|
||||
return FALSE
|
||||
|
||||
forceMove(T)
|
||||
var/original_canmove = canmove
|
||||
SetStunned(0)
|
||||
SetWeakened(0)
|
||||
if(buckled)
|
||||
buckled.unbuckle_mob()
|
||||
if(pulledby)
|
||||
pulledby.stop_pulling()
|
||||
stop_pulling()
|
||||
canmove = FALSE
|
||||
is_shifting = TRUE
|
||||
|
||||
//Shifting in
|
||||
if(shifted_out)
|
||||
shifted_out = FALSE
|
||||
name = real_name
|
||||
for(var/belly in vore_organs)
|
||||
var/obj/belly/B = belly
|
||||
B.escapable = initial(B.escapable)
|
||||
|
||||
overlays.Cut()
|
||||
alpha = initial(alpha)
|
||||
invisibility = initial(invisibility)
|
||||
see_invisible = initial(see_invisible)
|
||||
incorporeal_move = initial(incorporeal_move)
|
||||
density = initial(density)
|
||||
force_max_speed = initial(force_max_speed)
|
||||
|
||||
//Cosmetics mostly
|
||||
flick("phasein",src)
|
||||
custom_emote(1,"phases in!")
|
||||
sleep(30) //The duration of the TP animation
|
||||
is_shifting = FALSE
|
||||
canmove = original_canmove
|
||||
|
||||
//Potential phase-in vore
|
||||
if(can_be_drop_pred) //Toggleable in vore panel
|
||||
var/list/potentials = living_mobs(0)
|
||||
if(potentials.len)
|
||||
var/mob/living/target = pick(potentials)
|
||||
if(istype(target) && vore_selected)
|
||||
target.forceMove(vore_selected)
|
||||
to_chat(target,"<span class='warning'>\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
|
||||
|
||||
// Do this after the potential vore, so we get the belly
|
||||
update_icon()
|
||||
|
||||
shift_state = AB_SHIFT_NONE
|
||||
|
||||
/*
|
||||
//Affect nearby lights
|
||||
var/destroy_lights = 0
|
||||
|
||||
for(var/obj/machinery/light/L in machines)
|
||||
if(L.z != z || get_dist(src,L) > 10)
|
||||
continue
|
||||
|
||||
if(prob(destroy_lights))
|
||||
spawn(rand(5,25))
|
||||
L.broken()
|
||||
else
|
||||
L.flicker(10)
|
||||
*/
|
||||
|
||||
//Shifting out
|
||||
else
|
||||
shifted_out = TRUE
|
||||
shift_state = AB_SHIFT_PASSIVE
|
||||
custom_emote(1,"phases out!")
|
||||
real_name = name
|
||||
name = "Something"
|
||||
health = maxHealth //Fullheal
|
||||
|
||||
for(var/belly in vore_organs)
|
||||
var/obj/belly/B = belly
|
||||
B.escapable = FALSE
|
||||
|
||||
overlays.Cut()
|
||||
flick("phaseout",src)
|
||||
sleep(30)
|
||||
invisibility = INVISIBILITY_LEVEL_TWO
|
||||
see_invisible = INVISIBILITY_LEVEL_TWO
|
||||
update_icon()
|
||||
alpha = 127
|
||||
|
||||
is_shifting = FALSE
|
||||
canmove = original_canmove
|
||||
incorporeal_move = TRUE
|
||||
density = FALSE
|
||||
force_max_speed = TRUE
|
||||
|
||||
/mob/living/simple_mob/vore/demon/verb/phase_shift()
|
||||
set name = "Phase Shift"
|
||||
set desc = "Shift out of reality temporarily"
|
||||
set category = "Abilities"
|
||||
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
|
||||
if(shift_state && shift_state == AB_SHIFT_PASSIVE)
|
||||
to_chat(src,"<span class='warning'>You can't do a shift while passively shifting!</span>")
|
||||
return FALSE
|
||||
|
||||
if(shifted_out)
|
||||
to_chat(src,"<span class='warning'>You can't return to the physical world yet!</span>")
|
||||
return FALSE
|
||||
|
||||
if(world.time - last_shift < 600)
|
||||
to_chat(src,"<span class='warning'>You can't temporarily shift so soon! You need to wait [round(((last_shift+600)-world.time)/10)] second\s!</span>")
|
||||
return FALSE
|
||||
|
||||
shift_state = AB_SHIFT_ACTIVE
|
||||
forceMove(T)
|
||||
var/original_canmove = canmove
|
||||
SetStunned(0)
|
||||
SetWeakened(0)
|
||||
if(buckled)
|
||||
buckled.unbuckle_mob()
|
||||
if(pulledby)
|
||||
pulledby.stop_pulling()
|
||||
stop_pulling()
|
||||
canmove = FALSE
|
||||
is_shifting = TRUE
|
||||
|
||||
shifted_out = TRUE
|
||||
custom_emote(1,"phases out!")
|
||||
real_name = name
|
||||
name = "Something"
|
||||
|
||||
for(var/belly in vore_organs)
|
||||
var/obj/belly/B = belly
|
||||
B.escapable = FALSE
|
||||
|
||||
overlays.Cut()
|
||||
flick("phaseout",src)
|
||||
sleep(30)
|
||||
invisibility = INVISIBILITY_LEVEL_TWO
|
||||
see_invisible = INVISIBILITY_LEVEL_TWO
|
||||
update_icon()
|
||||
alpha = 127
|
||||
|
||||
is_shifting = FALSE
|
||||
canmove = original_canmove
|
||||
incorporeal_move = TRUE
|
||||
density = FALSE
|
||||
force_max_speed = TRUE
|
||||
|
||||
spawn(300)
|
||||
shifted_out = FALSE
|
||||
name = real_name
|
||||
for(var/belly in vore_organs)
|
||||
var/obj/belly/B = belly
|
||||
B.escapable = initial(B.escapable)
|
||||
|
||||
overlays.Cut()
|
||||
alpha = initial(alpha)
|
||||
invisibility = initial(invisibility)
|
||||
see_invisible = initial(see_invisible)
|
||||
incorporeal_move = initial(incorporeal_move)
|
||||
density = initial(density)
|
||||
force_max_speed = initial(force_max_speed)
|
||||
original_canmove = canmove
|
||||
canmove = FALSE
|
||||
is_shifting = TRUE
|
||||
|
||||
//Cosmetics mostly
|
||||
flick("phasein",src)
|
||||
custom_emote(1,"phases in!")
|
||||
sleep(30) //The duration of the TP animation
|
||||
is_shifting = FALSE
|
||||
canmove = original_canmove
|
||||
|
||||
var/turf/NT = get_turf(src)
|
||||
|
||||
if(!NT.CanPass(src,NT))
|
||||
for(var/direction in list(1,2,4,8,5,6,9,10))
|
||||
var/turf/L = get_step(NT, direction)
|
||||
if(L)
|
||||
if(L.CanPass(src,L))
|
||||
forceMove(L)
|
||||
break
|
||||
|
||||
//Potential phase-in vore
|
||||
if(can_be_drop_pred) //Toggleable in vore panel
|
||||
var/list/potentials = living_mobs(0)
|
||||
if(potentials.len)
|
||||
var/mob/living/target = pick(potentials)
|
||||
if(istype(target) && vore_selected)
|
||||
target.forceMove(vore_selected)
|
||||
to_chat(target,"<span class='warning'>\The [src] phases in around you, [vore_selected.vore_verb]ing you into their [vore_selected.name]!</span>")
|
||||
|
||||
// Do this after the potential vore, so we get the belly
|
||||
update_icon()
|
||||
|
||||
shift_state = AB_SHIFT_NONE
|
||||
last_shift = world.time
|
||||
@@ -0,0 +1,19 @@
|
||||
/mob/living/simple_mob/vore/demon/engorge
|
||||
name = "Engorge"
|
||||
|
||||
icon_state = "engorge"
|
||||
icon_living = "engorge"
|
||||
icon_dead = "engorge_dead"
|
||||
icon_rest = "engorge_rest"
|
||||
|
||||
vore_icons = null
|
||||
|
||||
/mob/living/simple_mob/vore/demon/zellic
|
||||
name = "Zellic"
|
||||
|
||||
icon_state = "zellic"
|
||||
icon_living = "zellic"
|
||||
icon_dead = "zellic_dead"
|
||||
icon_rest = null
|
||||
|
||||
vore_icons = null
|
||||
@@ -0,0 +1,3 @@
|
||||
#undef AB_SHIFT_NONE
|
||||
#undef AB_SHIFT_PASSIVE
|
||||
#undef AB_SHIFT_ACTIVE
|
||||
@@ -20,19 +20,22 @@
|
||||
var/emote_time = 60 SECONDS // How long between stomach emotes at prey
|
||||
var/digest_brute = 2 // Brute damage per tick in digestion mode
|
||||
var/digest_burn = 2 // Burn damage per tick in digestion mode
|
||||
var/immutable = 0 // Prevents this belly from being deleted
|
||||
var/escapable = 0 // Belly can be resisted out of at any time
|
||||
var/immutable = FALSE // Prevents this belly from being deleted
|
||||
var/escapable = FALSE // Belly can be resisted out of at any time
|
||||
var/escapetime = 60 SECONDS // Deciseconds, how long to escape this belly
|
||||
var/digestchance = 0 // % Chance of stomach beginning to digest if prey struggles
|
||||
var/absorbchance = 0 // % Chance of stomach beginning to absorb if prey struggles
|
||||
var/escapechance = 0 // % Chance of prey beginning to escape if prey struggles.
|
||||
var/transferchance = 0 // % Chance of prey being
|
||||
var/can_taste = 0 // If this belly prints the flavor of prey when it eats someone.
|
||||
var/can_taste = FALSE // If this belly prints the flavor of prey when it eats someone.
|
||||
var/bulge_size = 0.25 // The minimum size the prey has to be in order to show up on examine.
|
||||
var/shrink_grow_size = 1 // This horribly named variable determines the minimum/maximum size it will shrink/grow prey to.
|
||||
var/transferlocation // Location that the prey is released if they struggle and get dropped off.
|
||||
var/release_sound = TRUE // Boolean for now, maybe replace with something else later
|
||||
var/release_sound = "Splatter" // Sound for letting someone out. Replaced from True/false
|
||||
var/mode_flags = 0 // Stripping, numbing, etc.
|
||||
var/fancy_vore = FALSE // Using the new sounds?
|
||||
var/is_wet = TRUE // Is this belly's insides made of slimy parts?
|
||||
var/wet_loop = TRUE // Does the belly have a fleshy loop playing?
|
||||
|
||||
//I don't think we've ever altered these lists. making them static until someone actually overrides them somewhere.
|
||||
//Actual full digest modes
|
||||
@@ -147,7 +150,11 @@
|
||||
"item_digest_mode",
|
||||
"contaminates",
|
||||
"contamination_flavor",
|
||||
"contamination_color"
|
||||
"contamination_color",
|
||||
"release_sound",
|
||||
"fancy_vore",
|
||||
"is_wet",
|
||||
"wet_loop"
|
||||
)
|
||||
|
||||
/obj/belly/New(var/newloc)
|
||||
@@ -175,7 +182,11 @@
|
||||
|
||||
//Sound w/ antispam flag setting
|
||||
if(vore_sound && !recent_sound)
|
||||
var/soundfile = vore_sounds[vore_sound]
|
||||
var/soundfile
|
||||
if(!fancy_vore)
|
||||
soundfile = classic_vore_sounds[vore_sound]
|
||||
else
|
||||
soundfile = fancy_vore_sounds[vore_sound]
|
||||
if(soundfile)
|
||||
playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises)
|
||||
recent_sound = TRUE
|
||||
@@ -196,7 +207,7 @@
|
||||
|
||||
//Don't bother if we don't have contents
|
||||
if(!contents.len)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
//Find where we should drop things into (certainly not the owner)
|
||||
var/count = 0
|
||||
@@ -218,8 +229,13 @@
|
||||
//Print notifications/sound if necessary
|
||||
if(!silent)
|
||||
owner.visible_message("<font color='green'><b>[owner] expels everything from their [lowertext(name)]!</b></font>")
|
||||
if(release_sound)
|
||||
playsound(src, 'sound/effects/splat.ogg', vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises)
|
||||
var/soundfile
|
||||
if(!fancy_vore)
|
||||
soundfile = classic_release_sounds[release_sound]
|
||||
else
|
||||
soundfile = fancy_release_sounds[release_sound]
|
||||
if(soundfile)
|
||||
playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises)
|
||||
|
||||
return count
|
||||
|
||||
@@ -232,12 +248,15 @@
|
||||
|
||||
//Place them into our drop_location
|
||||
M.forceMove(drop_location())
|
||||
|
||||
items_preserved -= M
|
||||
|
||||
//Special treatment for absorbed prey
|
||||
if(istype(M,/mob/living))
|
||||
if(isliving(M))
|
||||
var/mob/living/ML = M
|
||||
var/mob/living/OW = owner
|
||||
if(ML.client)
|
||||
ML.stop_sound_channel(CHANNEL_PREYLOOP) //Stop the internal loop, it'll restart if the isbelly check on next tick anyway
|
||||
if(ML.muffled)
|
||||
ML.muffled = 0
|
||||
if(ML.absorbed)
|
||||
@@ -258,8 +277,13 @@
|
||||
//Print notifications/sound if necessary
|
||||
if(!silent)
|
||||
owner.visible_message("<font color='green'><b>[owner] expels [M] from their [lowertext(name)]!</b></font>")
|
||||
if(release_sound)
|
||||
playsound(src, 'sound/effects/splat.ogg', vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises)
|
||||
var/soundfile
|
||||
if(!fancy_vore)
|
||||
soundfile = classic_release_sounds[release_sound]
|
||||
else
|
||||
soundfile = fancy_release_sounds[release_sound]
|
||||
if(soundfile)
|
||||
playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/eating_noises)
|
||||
|
||||
return 1
|
||||
|
||||
@@ -403,6 +427,8 @@
|
||||
else if(M.reagents)
|
||||
M.reagents.trans_to_holder(Pred.bloodstr, M.reagents.total_volume, 0.5, TRUE)
|
||||
|
||||
//Incase they have the loop going, let's double check to stop it.
|
||||
M.stop_sound_channel(CHANNEL_PREYLOOP)
|
||||
// Delete the digested mob
|
||||
qdel(M)
|
||||
|
||||
@@ -515,9 +541,17 @@
|
||||
M.show_message(struggle_outer_message, 2) // hearable
|
||||
to_chat(R,struggle_user_message)
|
||||
|
||||
var/strpick = pick(struggle_sounds)
|
||||
var/strsound = struggle_sounds[strpick]
|
||||
playsound(src, strsound, vary = 1, vol = 100, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises)
|
||||
var/sound/struggle_snuggle
|
||||
var/sound/struggle_rustle = sound(get_sfx("rustle"))
|
||||
|
||||
if(is_wet)
|
||||
if(!fancy_vore)
|
||||
struggle_snuggle = sound(get_sfx("classic_struggle_sounds"))
|
||||
else
|
||||
struggle_snuggle = sound(get_sfx("fancy_prey_struggle"))
|
||||
playsound(src, struggle_snuggle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises)
|
||||
else
|
||||
playsound(src, struggle_rustle, vary = 1, vol = 75, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises)
|
||||
|
||||
if(escapable) //If the stomach has escapable enabled.
|
||||
if(prob(escapechance)) //Let's have it check to see if the prey escapes first.
|
||||
@@ -601,7 +635,11 @@
|
||||
I.gurgle_contaminate(target.contents, target.contamination_flavor, target.contamination_color)
|
||||
items_preserved -= content
|
||||
if(!silent && target.vore_sound && !recent_sound)
|
||||
var/soundfile = vore_sounds[target.vore_sound]
|
||||
var/soundfile
|
||||
if(!fancy_vore)
|
||||
soundfile = classic_vore_sounds[target.vore_sound]
|
||||
else
|
||||
soundfile = fancy_vore_sounds[target.vore_sound]
|
||||
if(soundfile)
|
||||
playsound(src, soundfile, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, preference = /datum/client_preference/digestion_noises)
|
||||
owner.updateVRPanel()
|
||||
@@ -639,6 +677,10 @@
|
||||
dupe.contaminates = contaminates
|
||||
dupe.contamination_flavor = contamination_flavor
|
||||
dupe.contamination_color = contamination_color
|
||||
dupe.release_sound = release_sound
|
||||
dupe.fancy_vore = fancy_vore
|
||||
dupe.is_wet = is_wet
|
||||
dupe.wet_loop = wet_loop
|
||||
|
||||
//// Object-holding variables
|
||||
//struggle_messages_outside - strings
|
||||
|
||||
@@ -24,6 +24,35 @@
|
||||
if(M.digestable || digest_mode != DM_DIGEST) // don't give digesty messages to indigestible people
|
||||
to_chat(M,"<span class='notice'>[pick(EL)]</span>")
|
||||
|
||||
///////////////////// Prey Loop Refresh/hack //////////////////////
|
||||
for(var/mob/living/M in contents)
|
||||
M.stop_sound_channel(CHANNEL_PREYLOOP) // sanity just in case, because byond is whack and you can't trust it
|
||||
if(isbelly(M.loc)) //sanity check
|
||||
if(world.time > M.next_preyloop) //We don't want it to overlap, but we also want it to replay.
|
||||
if(is_wet && wet_loop) // Is it a fleshy environment, and does the pred have a fleshy heartbeat loop to play?
|
||||
if(!M.client)
|
||||
continue
|
||||
if(M.is_preference_enabled(/datum/client_preference/digestion_noises)) //then we check if the mob has sounds enabled at all
|
||||
var/sound/preyloop = sound('sound/vore/sunesound/prey/loop.ogg')
|
||||
M.playsound_local(get_turf(src),preyloop, 80,0, channel = CHANNEL_PREYLOOP)
|
||||
M.next_preyloop = (world.time + 52 SECONDS)
|
||||
|
||||
/////////////////////////// Sound Selections ///////////////////////////
|
||||
var/sound/prey_digest
|
||||
var/sound/prey_death
|
||||
var/sound/pred_digest
|
||||
var/sound/pred_death
|
||||
if(!fancy_vore)
|
||||
prey_digest = sound(get_sfx("classic_digestion_sounds"))
|
||||
prey_death = sound(get_sfx("classic_death_sounds"))
|
||||
pred_digest = sound(get_sfx("classic_digestion_sounds"))
|
||||
pred_death = sound(get_sfx("classic_death_sounds"))
|
||||
else
|
||||
prey_digest = sound(get_sfx("fancy_digest_prey"))
|
||||
prey_death = sound(get_sfx("fancy_death_prey"))
|
||||
pred_digest = sound(get_sfx("fancy_digest_pred"))
|
||||
pred_death = sound(get_sfx("fancy_death_pred"))
|
||||
|
||||
/////////////////////////// Exit Early ////////////////////////////
|
||||
var/list/touchable_atoms = contents - items_preserved
|
||||
if(!length(touchable_atoms))
|
||||
@@ -47,7 +76,7 @@
|
||||
else
|
||||
items_preserved |= I
|
||||
if(prob(25)) //Less often than with normal digestion
|
||||
play_sound = pick(digestion_sounds)
|
||||
play_sound = pick(pred_digest)
|
||||
else if(item_digest_mode == IM_DIGEST)
|
||||
if(I.digest_stage && I.digest_stage > 0)
|
||||
digest_item(I)
|
||||
@@ -56,7 +85,7 @@
|
||||
did_an_item = TRUE
|
||||
to_update = TRUE
|
||||
if(prob(25)) //Less often than with normal digestion
|
||||
play_sound = pick(digestion_sounds)
|
||||
play_sound = pick(pred_digest)
|
||||
|
||||
//Handle eaten mobs
|
||||
else if(isliving(A))
|
||||
@@ -96,11 +125,15 @@
|
||||
else
|
||||
items_preserved |= I
|
||||
if(prob(25)) //Less often than with normal digestion
|
||||
play_sound = pick(digestion_sounds)
|
||||
if(L && L.client && L.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(L,prey_digest)
|
||||
play_sound = pick(pred_digest)
|
||||
else if(item_digest_mode == IM_DIGEST)
|
||||
digest_item(I)
|
||||
if(prob(25)) //Less often than with normal digestion
|
||||
play_sound = pick(digestion_sounds)
|
||||
if(L && L.client && L.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(L,prey_digest)
|
||||
play_sound = pick(pred_digest)
|
||||
to_update = TRUE
|
||||
break
|
||||
//get rid of things like blood drops and gibs that end up in there
|
||||
@@ -115,7 +148,10 @@
|
||||
else if(digest_mode == DM_DIGEST)
|
||||
|
||||
if(prob(50)) //Was SO OFTEN. AAAA.
|
||||
play_sound = pick(digestion_sounds)
|
||||
for(var/mob/M in contents)
|
||||
if(M && M.client && M.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(M,prey_digest)
|
||||
play_sound = pick(pred_digest)
|
||||
|
||||
for (var/target in touchable_mobs)
|
||||
var/mob/living/M = target
|
||||
@@ -142,7 +178,9 @@
|
||||
to_chat(owner,"<span class='notice'>" + digest_alert_owner + "</span>")
|
||||
to_chat(M,"<span class='notice'>" + digest_alert_prey + "</span>")
|
||||
|
||||
play_sound = pick(death_sounds)
|
||||
play_sound = pick(pred_death)
|
||||
if(M && M.client && M.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(M,prey_death)
|
||||
if((mode_flags & DM_FLAG_LEAVEREMAINS) && M.digest_leave_remains)
|
||||
handle_remains_leaving(M)
|
||||
digestion_death(M)
|
||||
@@ -183,7 +221,9 @@
|
||||
for (var/target in touchable_mobs)
|
||||
var/mob/living/M = target
|
||||
if(prob(10)) //Less often than gurgles. People might leave this on forever.
|
||||
play_sound = pick(digestion_sounds)
|
||||
if(M && M.client && M.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(M,prey_digest)
|
||||
play_sound = pick(pred_digest)
|
||||
|
||||
if(M.absorbed)
|
||||
continue
|
||||
@@ -216,7 +256,9 @@
|
||||
var/mob/living/M = target
|
||||
|
||||
if(prob(10)) //Less often than gurgles. People might leave this on forever.
|
||||
play_sound = pick(digestion_sounds)
|
||||
if(M && M.client && M.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(M,prey_digest)
|
||||
play_sound = pick(pred_digest)
|
||||
|
||||
if(M.nutrition >= 100) //Drain them until there's no nutrients left.
|
||||
var/oldnutrition = (M.nutrition * 0.05)
|
||||
@@ -230,7 +272,9 @@
|
||||
var/mob/living/M = target
|
||||
|
||||
if(prob(10)) //Infinite gurgles!
|
||||
play_sound = pick(digestion_sounds)
|
||||
if(M && M.client && M.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(M,prey_digest)
|
||||
play_sound = pick(pred_digest)
|
||||
|
||||
if(M.size_multiplier > shrink_grow_size) //Shrink until smol.
|
||||
M.resize(M.size_multiplier-0.01) //Shrink by 1% per tick.
|
||||
@@ -247,7 +291,9 @@
|
||||
var/mob/living/M = target
|
||||
|
||||
if(prob(10))
|
||||
play_sound = pick(digestion_sounds)
|
||||
if(M && M.client && M.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(M,prey_digest)
|
||||
play_sound = pick(pred_digest)
|
||||
|
||||
if(M.size_multiplier < shrink_grow_size) //Grow until large.
|
||||
M.resize(M.size_multiplier+0.01) //Grow by 1% per tick.
|
||||
@@ -261,7 +307,9 @@
|
||||
var/mob/living/M = target
|
||||
|
||||
if(prob(10))
|
||||
play_sound = pick(digestion_sounds)
|
||||
if(M && M.client && M.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(M,prey_digest)
|
||||
play_sound = pick(pred_digest)
|
||||
|
||||
if(M.size_multiplier > shrink_grow_size && owner.size_multiplier < 2) //Grow until either pred is large or prey is small.
|
||||
owner.resize(owner.size_multiplier+0.01) //Grow by 1% per tick.
|
||||
@@ -276,7 +324,10 @@
|
||||
else if(digest_mode == DM_HEAL)
|
||||
|
||||
if(prob(50)) //Wet heals! The secret is you can leave this on for gurgle noises for fun.
|
||||
play_sound = pick(digestion_sounds)
|
||||
for(var/mob/M in contents)
|
||||
if(M && M.client && M.is_preference_enabled(/datum/client_preference/digestion_noises))
|
||||
SEND_SOUND(M,prey_digest)
|
||||
play_sound = pick(pred_digest)
|
||||
|
||||
for (var/target in touchable_mobs)
|
||||
var/mob/living/M = target
|
||||
@@ -303,7 +354,9 @@
|
||||
|
||||
/////////////////////////// Make any noise ///////////////////////////
|
||||
if(play_sound)
|
||||
playsound(src, play_sound, vol = 100, vary = 1, falloff = VORE_SOUND_FALLOFF, ignore_walls = TRUE, preference = /datum/client_preference/digestion_noises)
|
||||
for(var/mob/M in hearers(4, owner)) //so we don't fill the whole room with the sound effect
|
||||
if(M && M.client && (isturf(M.loc) || (M.loc != src.contents)) && M.is_preference_enabled(/datum/client_preference/digestion_noises)) //to avoid people on the inside getting the outside sounds and their direct sounds + built in sound pref check
|
||||
SEND_SOUND(M, play_sound) //these are all external sound triggers now, so it's ok.
|
||||
if(to_update)
|
||||
for(var/mob/living/M in contents)
|
||||
if(M.client)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
///////////////////// Mob Living /////////////////////
|
||||
/mob/living
|
||||
var/digestable = 1 // Can the mob be digested inside a belly?
|
||||
var/digest_leave_remains = 0 // Will this mob leave bones/skull/etc after the melty demise?
|
||||
var/allowmobvore = 1 // Will simplemobs attempt to eat the mob?
|
||||
var/showvoreprefs = 1 // Determines if the mechanical vore preferences button will be displayed on the mob or not.
|
||||
var/digestable = TRUE // Can the mob be digested inside a belly?
|
||||
var/digest_leave_remains = FALSE // Will this mob leave bones/skull/etc after the melty demise?
|
||||
var/allowmobvore = TRUE // Will simplemobs attempt to eat the mob?
|
||||
var/showvoreprefs = TRUE // Determines if the mechanical vore preferences button will be displayed on the mob or not.
|
||||
var/obj/belly/vore_selected // Default to no vore capability.
|
||||
var/list/vore_organs = list() // List of vore containers inside a mob
|
||||
var/absorbed = 0 // If a mob is absorbed into another
|
||||
var/absorbed = FALSE // If a mob is absorbed into another
|
||||
var/weight = 137 // Weight for mobs for weightgain system
|
||||
var/weight_gain = 1 // How fast you gain weight
|
||||
var/weight_loss = 0.5 // How fast you lose weight
|
||||
@@ -15,16 +15,17 @@
|
||||
var/revive_ready = REVIVING_READY // Only used for creatures that have the xenochimera regen ability, so far.
|
||||
var/metabolism = 0.0015
|
||||
var/vore_taste = null // What the character tastes like
|
||||
var/no_vore = 0 // If the character/mob can vore.
|
||||
var/openpanel = 0 // Is the vore panel open?
|
||||
var/noisy = 0 // Toggle audible hunger.
|
||||
var/no_vore = FALSE // If the character/mob can vore.
|
||||
var/openpanel = FALSE // Is the vore panel open?
|
||||
var/noisy = FALSE // Toggle audible hunger.
|
||||
var/absorbing_prey = 0 // Determines if the person is using the succubus drain or not. See station_special_abilities_vr.
|
||||
var/drain_finalized = 0 // Determines if the succubus drain will be KO'd/absorbed. Can be toggled on at any time.
|
||||
var/fuzzy = 1 // Preference toggle for sharp/fuzzy icon.
|
||||
var/tail_alt = 0 // Tail layer toggle.
|
||||
var/permit_healbelly = TRUE
|
||||
var/can_be_drop_prey = 0
|
||||
var/can_be_drop_pred = 1 // Mobs are pred by default.
|
||||
var/can_be_drop_prey = FALSE
|
||||
var/can_be_drop_pred = TRUE // Mobs are pred by default.
|
||||
var/next_preyloop // For Fancy sound internal loop
|
||||
|
||||
//
|
||||
// Hook for generic creation of stuff on new creatures
|
||||
|
||||
@@ -19,6 +19,8 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
|
||||
-Aro <3 */
|
||||
|
||||
#define VORE_VERSION 1 //This is a Define so you don't have to worry about magic numbers.
|
||||
|
||||
//
|
||||
// Overrides/additions to stock defines go here, as well as hooks. Sort them by
|
||||
// the object they are overriding. So all /mob/living together, etc.
|
||||
@@ -139,7 +141,7 @@ V::::::V V::::::VO:::::::OOO:::::::ORR:::::R R:::::REE::::::EEEEEE
|
||||
/datum/vore_preferences/proc/save_vore()
|
||||
if(!path) return 0
|
||||
|
||||
var/version = 1 //For "good times" use in the future
|
||||
var/version = VORE_VERSION //For "good times" use in the future
|
||||
var/list/settings_list = list(
|
||||
"version" = version,
|
||||
"digestable" = digestable,
|
||||
|
||||
@@ -189,6 +189,13 @@
|
||||
dat += "<a href='?src=\ref[src];b_name=\ref[selected]'>Name:</a>"
|
||||
dat += " '[selected.name]'"
|
||||
|
||||
//Belly Type button
|
||||
dat += "<br><a href='?src=\ref[src];b_wetness=\ref[selected]'>Is this belly fleshy:</a>"
|
||||
dat += "[selected.is_wet ? "Yes" : "No"]"
|
||||
if(selected.is_wet)
|
||||
dat += "<a href='?src=\ref[src];b_wetloop=\ref[selected]'>Internal loop for prey?:</a>"
|
||||
dat += "[selected.wet_loop ? "Yes" : "No"]"
|
||||
|
||||
//Digest Mode Button
|
||||
dat += "<br><a href='?src=\ref[src];b_mode=\ref[selected]'>Belly Mode:</a>"
|
||||
var/mode = selected.digest_mode
|
||||
@@ -229,10 +236,18 @@
|
||||
dat += "<br><a href='?src=\ref[src];b_desc=\ref[selected]'>Flavor Text:</a>"
|
||||
dat += " '[selected.desc]'"
|
||||
|
||||
//Belly Sound Fanciness
|
||||
dat += "<br><a href='?src=\ref[src];b_fancy_sound=\ref[selected]'>Use Fancy Sounds:</a>"
|
||||
dat += "[selected.fancy_vore ? "Yes" : "No"]"
|
||||
|
||||
//Belly sound
|
||||
dat += "<br><a href='?src=\ref[src];b_sound=\ref[selected]'>Set Vore Sound</a>"
|
||||
dat += "<br><a href='?src=\ref[src];b_sound=\ref[selected]'>Vore Sound: [selected.vore_sound]</a>"
|
||||
dat += "<a href='?src=\ref[src];b_soundtest=\ref[selected]'>Test</a>"
|
||||
|
||||
//Release sound
|
||||
dat += "<br><a href='?src=\ref[src];b_release=\ref[selected]'>Release Sound: [selected.release_sound]</a>"
|
||||
dat += "<a href='?src=\ref[src];b_releasesoundtest=\ref[selected]'>Test</a>"
|
||||
|
||||
//Belly messages
|
||||
dat += "<br><a href='?src=\ref[src];b_msgs=\ref[selected]'>Belly Messages</a>"
|
||||
|
||||
@@ -293,27 +308,27 @@
|
||||
dat += "<HR>"
|
||||
|
||||
switch(user.digestable)
|
||||
if(1)
|
||||
if(TRUE)
|
||||
dat += "<a href='?src=\ref[src];toggledg=1'>Toggle Digestable</a>"
|
||||
if(0)
|
||||
if(FALSE)
|
||||
dat += "<a href='?src=\ref[src];toggledg=1'><span style='color:green;'>Toggle Digestable</span></a>"
|
||||
|
||||
switch(user.digest_leave_remains)
|
||||
if(1)
|
||||
if(TRUE)
|
||||
dat += "<a href='?src=\ref[src];toggledlm=1'><span style='color:red;'>Toggle Leaving Remains</span></a>"
|
||||
if(0)
|
||||
if(FALSE)
|
||||
dat += "<a href='?src=\ref[src];toggledlm=1'>Toggle Leaving Remains</a>"
|
||||
|
||||
switch(user.allowmobvore)
|
||||
if(1)
|
||||
if(TRUE)
|
||||
dat += "<br><a href='?src=\ref[src];togglemv=1'>Toggle Mob Vore</a>"
|
||||
if(0)
|
||||
if(FALSE)
|
||||
dat += "<br><a href='?src=\ref[src];togglemv=1'><span style='color:green;'>Toggle Mob Vore</span></a>"
|
||||
|
||||
switch(user.permit_healbelly)
|
||||
if(1)
|
||||
if(TRUE)
|
||||
dat += "<a href='?src=\ref[src];togglehealbelly=1'>Toggle Healbelly Permission</a>"
|
||||
if(0)
|
||||
if(FALSE)
|
||||
dat += "<a href='?src=\ref[src];togglehealbelly=1'><span style='color:red;'>Toggle Healbelly Permission</span></a>"
|
||||
|
||||
dat += "<br><a href='?src=\ref[src];toggle_dropnom_prey=1'>Toggle Drop-nom Prey</a>" //These two get their own, custom row, too.
|
||||
@@ -534,6 +549,12 @@
|
||||
|
||||
selected.name = new_name
|
||||
|
||||
if(href_list["b_wetness"])
|
||||
selected.is_wet = !selected.is_wet
|
||||
|
||||
if(href_list["b_wetloop"])
|
||||
selected.wet_loop = !selected.wet_loop
|
||||
|
||||
if(href_list["b_mode"])
|
||||
var/list/menu_list = selected.digest_modes.Copy()
|
||||
if(istype(usr,/mob/living/carbon/human))
|
||||
@@ -658,17 +679,54 @@
|
||||
|
||||
selected.vore_verb = new_verb
|
||||
|
||||
if(href_list["b_sound"])
|
||||
var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in vore_sounds
|
||||
if(href_list["b_fancy_sound"])
|
||||
selected.fancy_vore = !selected.fancy_vore
|
||||
selected.vore_sound = "Gulp"
|
||||
selected.release_sound = "Splatter"
|
||||
// defaults as to avoid potential bugs
|
||||
|
||||
if(href_list["b_release"])
|
||||
var/choice
|
||||
if(selected.fancy_vore)
|
||||
choice = input(user,"Currently set to [selected.release_sound]","Select Sound") as null|anything in fancy_release_sounds
|
||||
else
|
||||
choice = input(user,"Currently set to [selected.release_sound]","Select Sound") as null|anything in classic_release_sounds
|
||||
|
||||
if(!choice)
|
||||
return 0
|
||||
return FALSE
|
||||
|
||||
selected.release_sound = choice
|
||||
|
||||
if(href_list["b_releasesoundtest"])
|
||||
var/sound/releasetest
|
||||
if(selected.fancy_vore)
|
||||
releasetest = fancy_release_sounds[selected.release_sound]
|
||||
else
|
||||
releasetest = classic_release_sounds[selected.release_sound]
|
||||
|
||||
if(releasetest)
|
||||
SEND_SOUND(user, releasetest)
|
||||
|
||||
if(href_list["b_sound"])
|
||||
var/choice
|
||||
if(selected.fancy_vore)
|
||||
choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in fancy_vore_sounds
|
||||
else
|
||||
choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in classic_vore_sounds
|
||||
|
||||
if(!choice)
|
||||
return FALSE
|
||||
|
||||
selected.vore_sound = choice
|
||||
|
||||
if(href_list["b_soundtest"])
|
||||
var/soundfile = vore_sounds[selected.vore_sound]
|
||||
if(soundfile)
|
||||
user << soundfile
|
||||
var/sound/voretest
|
||||
if(selected.fancy_vore)
|
||||
voretest = fancy_vore_sounds[selected.vore_sound]
|
||||
else
|
||||
voretest = classic_vore_sounds[selected.vore_sound]
|
||||
if(voretest)
|
||||
SEND_SOUND(user, voretest)
|
||||
|
||||
if(href_list["b_tastes"])
|
||||
selected.can_taste = !selected.can_taste
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
################################
|
||||
# Example Changelog File
|
||||
#
|
||||
# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb.
|
||||
#
|
||||
# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.)
|
||||
# When it is, any changes listed below will disappear.
|
||||
#
|
||||
# Valid Prefixes:
|
||||
# bugfix
|
||||
# wip (For works in progress)
|
||||
# tweak
|
||||
# soundadd
|
||||
# sounddel
|
||||
# rscadd (general adding of nice things)
|
||||
# rscdel (general deleting of nice things)
|
||||
# imageadd
|
||||
# imagedel
|
||||
# maptweak
|
||||
# spellcheck (typo fixes)
|
||||
# experiment
|
||||
#################################
|
||||
|
||||
# Your name.
|
||||
author: Poojawa
|
||||
|
||||
# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again.
|
||||
delete-after: True
|
||||
|
||||
# Any changes you've made. See valid prefix list above.
|
||||
# INDENT WITH TWO SPACES. NOT TABS. SPACES.
|
||||
# SCREW THIS UP AND IT WON'T WORK.
|
||||
# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries.
|
||||
# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog.
|
||||
changes:
|
||||
- soundadd: "Added my fancy vore sounds."
|
||||
- rscadd: "Porting of a few QoL Citadel changes to vore menu related to sounds."
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 61 KiB |
@@ -104,6 +104,7 @@
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/camera/network/medbay,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/tether/surfacebase/medical/surgery)
|
||||
"at" = (
|
||||
@@ -1289,6 +1290,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
|
||||
dir = 6
|
||||
},
|
||||
/obj/machinery/camera/network/medbay,
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/medical/resleeving)
|
||||
"cU" = (
|
||||
@@ -22279,6 +22281,7 @@
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/vending/medical,
|
||||
/obj/machinery/camera/network/medbay,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/tether/surfacebase/medical/storage)
|
||||
"PU" = (
|
||||
@@ -22309,7 +22312,6 @@
|
||||
/obj/item/weapon/tool/wrench,
|
||||
/obj/item/weapon/storage/briefcase/inflatable,
|
||||
/obj/item/weapon/storage/briefcase/inflatable,
|
||||
/obj/machinery/camera/network/medbay,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/tether/surfacebase/medical/storage)
|
||||
"PW" = (
|
||||
@@ -22621,6 +22623,9 @@
|
||||
/area/tether/surfacebase/medical/storage)
|
||||
"Qu" = (
|
||||
/obj/machinery/suit_cycler/medical,
|
||||
/obj/machinery/camera/network/medbay{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/tether/surfacebase/medical/paramed)
|
||||
"Qv" = (
|
||||
@@ -23838,6 +23843,9 @@
|
||||
/obj/structure/bed/chair/wheelchair{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/camera/network/medbay{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/tether/surfacebase/medical/storage)
|
||||
"RW" = (
|
||||
@@ -24487,6 +24495,9 @@
|
||||
/obj/effect/floor_decal/corner/paleblue/border{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/camera/network/medbay{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/tether/surfacebase/medical/breakroom)
|
||||
"SV" = (
|
||||
@@ -24742,6 +24753,7 @@
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/camera/network/security,
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/warden)
|
||||
"Tr" = (
|
||||
@@ -25149,21 +25161,20 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/lowerhallway)
|
||||
"TT" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 1;
|
||||
d2 = 8;
|
||||
icon_state = "1-8"
|
||||
/obj/machinery/power/apc{
|
||||
dir = 2;
|
||||
name = "south bump";
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d2 = 8;
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor,
|
||||
/obj/effect/floor_decal/corner/red/border,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/lowerhallway)
|
||||
/area/tether/surfacebase/security/solitary)
|
||||
"TU" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 4
|
||||
@@ -25262,20 +25273,25 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/solitary)
|
||||
"Ua" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/power/apc{
|
||||
dir = 2;
|
||||
name = "south bump";
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 1;
|
||||
d2 = 8;
|
||||
icon_state = "0-8"
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor,
|
||||
/obj/effect/floor_decal/corner/red/border,
|
||||
/obj/machinery/camera/network/security{
|
||||
c_tag = "SEC - Vault Exterior North";
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/solitary)
|
||||
/area/tether/surfacebase/security/lowerhallway)
|
||||
"Ub" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 9
|
||||
@@ -25628,25 +25644,6 @@
|
||||
},
|
||||
/turf/simulated/floor,
|
||||
/area/tether/surfacebase/security/gasstorage)
|
||||
"UE" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/green{
|
||||
icon_state = "intact";
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
icon_state = "intact-scrubbers";
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/lowerhallway)
|
||||
"UF" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/green{
|
||||
icon_state = "intact";
|
||||
@@ -25712,19 +25709,28 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/evidence)
|
||||
"UJ" = (
|
||||
/obj/effect/floor_decal/borderfloorblack,
|
||||
/obj/structure/closet{
|
||||
name = "Evidence Closet"
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/green{
|
||||
icon_state = "intact";
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/alarm{
|
||||
alarm_id = null;
|
||||
breach_detection = 0;
|
||||
dir = 1;
|
||||
icon_state = "alarm0";
|
||||
pixel_y = -22
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
icon_state = "intact-scrubbers";
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/evidence)
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/camera/network/security{
|
||||
c_tag = "SEC - Vault Exterior North";
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/lowerhallway)
|
||||
"UK" = (
|
||||
/obj/effect/floor_decal/borderfloorblack{
|
||||
dir = 6
|
||||
@@ -26176,11 +26182,23 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/brig)
|
||||
"Vn" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 4
|
||||
/obj/effect/floor_decal/borderfloorblack,
|
||||
/obj/structure/closet{
|
||||
name = "Evidence Closet"
|
||||
},
|
||||
/obj/machinery/alarm{
|
||||
alarm_id = null;
|
||||
breach_detection = 0;
|
||||
dir = 1;
|
||||
icon_state = "alarm0";
|
||||
pixel_y = -22
|
||||
},
|
||||
/obj/machinery/camera/network/security{
|
||||
c_tag = "SEC - Vault Exterior North";
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/brig)
|
||||
/area/tether/surfacebase/security/evidence)
|
||||
"Vo" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 5
|
||||
@@ -26475,7 +26493,13 @@
|
||||
/turf/simulated/floor,
|
||||
/area/tether/surfacebase/security/interrogation)
|
||||
"VI" = (
|
||||
/obj/machinery/vending/hydronutrients,
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/camera/network/security{
|
||||
c_tag = "SEC - Vault Exterior North";
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/brig)
|
||||
"VJ" = (
|
||||
@@ -26615,19 +26639,8 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/brig)
|
||||
"VV" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/green{
|
||||
icon_state = "intact";
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
/obj/machinery/vending/hydronutrients,
|
||||
/obj/machinery/camera/network/security{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
@@ -27279,31 +27292,29 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/rnd/outpost/xenobiology/outpost_slimepens)
|
||||
"WO" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/green{
|
||||
icon_state = "intact";
|
||||
dir = 9
|
||||
},
|
||||
"WM" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/floor_decal/steeldecal/steel_decals4{
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/green{
|
||||
icon_state = "intact";
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/camera/network/security{
|
||||
c_tag = "SEC - Vault Exterior North";
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/floor_decal/steeldecal/steel_decals4{
|
||||
dir = 6
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/lowerhallway)
|
||||
"WP" = (
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/brig)
|
||||
"WN" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
@@ -27332,8 +27343,43 @@
|
||||
/obj/effect/floor_decal/corner/red/bordercorner2{
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/camera/network/security{
|
||||
c_tag = "SEC - Vault Exterior West";
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/lowerhallway)
|
||||
"WO" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/green{
|
||||
icon_state = "intact";
|
||||
dir = 9
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/floor_decal/steeldecal/steel_decals4{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/floor_decal/steeldecal/steel_decals4{
|
||||
dir = 6
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/lowerhallway)
|
||||
"WP" = (
|
||||
/obj/machinery/camera/network/interrogation{
|
||||
icon_state = "camera";
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/interrogation)
|
||||
"WT" = (
|
||||
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
|
||||
dir = 8
|
||||
@@ -35550,7 +35596,7 @@ Uz
|
||||
UN
|
||||
Vg
|
||||
Vx
|
||||
VI
|
||||
VV
|
||||
VQ
|
||||
We
|
||||
Wo
|
||||
@@ -36400,13 +36446,13 @@ Tz
|
||||
UF
|
||||
UN
|
||||
UW
|
||||
Vn
|
||||
VI
|
||||
UN
|
||||
UW
|
||||
VV
|
||||
WM
|
||||
UN
|
||||
UW
|
||||
Vn
|
||||
VI
|
||||
UN
|
||||
cW
|
||||
cW
|
||||
@@ -36539,7 +36585,7 @@ Ty
|
||||
Ue
|
||||
WF
|
||||
Tz
|
||||
UE
|
||||
UJ
|
||||
UN
|
||||
Ud
|
||||
Vo
|
||||
@@ -36971,7 +37017,7 @@ VZ
|
||||
Ww
|
||||
WC
|
||||
WD
|
||||
WP
|
||||
WN
|
||||
WT
|
||||
Xa
|
||||
Xb
|
||||
@@ -37104,7 +37150,7 @@ ab
|
||||
ab
|
||||
Ts
|
||||
TE
|
||||
TT
|
||||
Ua
|
||||
Tr
|
||||
Us
|
||||
Us
|
||||
@@ -37254,7 +37300,7 @@ UQ
|
||||
Vc
|
||||
Vu
|
||||
VF
|
||||
VP
|
||||
WP
|
||||
Wa
|
||||
Wl
|
||||
UQ
|
||||
@@ -37817,7 +37863,7 @@ TQ
|
||||
Up
|
||||
Uk
|
||||
Uw
|
||||
UJ
|
||||
Vn
|
||||
UR
|
||||
VE
|
||||
US
|
||||
@@ -38240,7 +38286,7 @@ ab
|
||||
ab
|
||||
Tt
|
||||
TJ
|
||||
Ua
|
||||
TT
|
||||
Uk
|
||||
Uk
|
||||
Uk
|
||||
|
||||
+249
-147
@@ -1609,15 +1609,9 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/armory)
|
||||
"dg" = (
|
||||
/obj/machinery/vending/snack,
|
||||
/obj/effect/floor_decal/borderfloor{
|
||||
dir = 10
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 10
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/breakroom)
|
||||
/obj/machinery/camera/network/security,
|
||||
/turf/simulated/open,
|
||||
/area/tether/surfacebase/security/upperhall)
|
||||
"dh" = (
|
||||
/obj/machinery/vending/cola,
|
||||
/obj/effect/floor_decal/borderfloor,
|
||||
@@ -2405,32 +2399,18 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/common)
|
||||
"eA" = (
|
||||
/obj/machinery/vending/snack,
|
||||
/obj/effect/floor_decal/borderfloor{
|
||||
dir = 5
|
||||
dir = 10
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 5
|
||||
dir = 10
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor/corner2{
|
||||
dir = 5
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/bordercorner2{
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
dir = 8;
|
||||
icon_state = "extinguisher_closed";
|
||||
pixel_x = 30
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor/corner2{
|
||||
/obj/machinery/camera/network/security{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/bordercorner2{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/flora/pottedplant/stoutbush,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/common)
|
||||
/area/tether/surfacebase/security/breakroom)
|
||||
"eB" = (
|
||||
/obj/structure/table/steel,
|
||||
/obj/effect/floor_decal/borderfloor{
|
||||
@@ -3220,12 +3200,14 @@
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/crew_quarters/recreation_area_restroom)
|
||||
"fR" = (
|
||||
/obj/effect/floor_decal/steeldecal/steel_decals4{
|
||||
dir = 10
|
||||
/obj/effect/floor_decal/industrial/outline/yellow,
|
||||
/obj/structure/closet/secure_closet/security,
|
||||
/obj/item/device/holowarrant,
|
||||
/obj/machinery/camera/network/security{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/floor_decal/steeldecal/steel_decals4,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/common)
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/armory)
|
||||
"fS" = (
|
||||
/obj/structure/cable/green{
|
||||
icon_state = "4-8"
|
||||
@@ -3373,18 +3355,26 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/tether/surfacebase/security/armory)
|
||||
"gd" = (
|
||||
/obj/structure/table/steel,
|
||||
/obj/item/weapon/storage/box/evidence,
|
||||
/obj/effect/floor_decal/borderfloor{
|
||||
dir = 8;
|
||||
icon_state = "borderfloor";
|
||||
pixel_x = 0
|
||||
dir = 5
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 8
|
||||
dir = 5
|
||||
},
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
dir = 8;
|
||||
icon_state = "extinguisher_closed";
|
||||
pixel_x = 30
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor/corner2{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/bordercorner2{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/flora/pottedplant/stoutbush,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/processing)
|
||||
/area/tether/surfacebase/security/common)
|
||||
"ge" = (
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/processing)
|
||||
@@ -3700,30 +3690,16 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/common)
|
||||
"gI" = (
|
||||
/obj/machinery/camera/network/security{
|
||||
c_tag = "SEC - Vault Exterior West";
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor/corner2{
|
||||
dir = 6
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/bordercorner2{
|
||||
dir = 6
|
||||
},
|
||||
/obj/item/device/radio/intercom/department/security{
|
||||
dir = 4;
|
||||
icon_state = "secintercom";
|
||||
pixel_x = 24;
|
||||
pixel_y = 0
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor/corner2{
|
||||
dir = 5
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/bordercorner2{
|
||||
dir = 5
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/common)
|
||||
"gJ" = (
|
||||
@@ -4240,17 +4216,21 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/frontdesk)
|
||||
"hB" = (
|
||||
/obj/machinery/papershredder,
|
||||
/obj/structure/table/steel,
|
||||
/obj/item/weapon/storage/box/evidence,
|
||||
/obj/effect/floor_decal/borderfloor{
|
||||
dir = 1;
|
||||
dir = 8;
|
||||
icon_state = "borderfloor";
|
||||
pixel_y = 0
|
||||
pixel_x = 0
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 1
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/camera/network/security{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/frontdesk)
|
||||
/area/tether/surfacebase/security/processing)
|
||||
"hC" = (
|
||||
/obj/structure/cable/green{
|
||||
icon_state = "4-8"
|
||||
@@ -14139,7 +14119,7 @@
|
||||
/obj/item/weapon/book/manual/engineering_hacking,
|
||||
/obj/item/weapon/book/manual/nuclear,
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
/area/tether/surfacebase/library/study)
|
||||
"xV" = (
|
||||
/obj/machinery/alarm{
|
||||
pixel_y = 22
|
||||
@@ -14151,7 +14131,7 @@
|
||||
/obj/item/weapon/pen/invisible,
|
||||
/obj/item/weapon/pen/invisible,
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
/area/tether/surfacebase/library/study)
|
||||
"xW" = (
|
||||
/obj/structure/table/rack{
|
||||
dir = 8;
|
||||
@@ -14166,7 +14146,7 @@
|
||||
pixel_y = 0
|
||||
},
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
/area/tether/surfacebase/library/study)
|
||||
"xX" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/structure/cable{
|
||||
@@ -15025,14 +15005,31 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 6
|
||||
},
|
||||
/obj/effect/landmark/start{
|
||||
name = "Librarian"
|
||||
},
|
||||
/obj/machinery/power/apc{
|
||||
cell_type = /obj/item/weapon/cell/super;
|
||||
dir = 8;
|
||||
name = "west bump";
|
||||
pixel_x = -30
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
/area/tether/surfacebase/library/study)
|
||||
"zj" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
/area/tether/surfacebase/library/study)
|
||||
"zk" = (
|
||||
/obj/effect/floor_decal/steeldecal/steel_decals7{
|
||||
dir = 6
|
||||
@@ -15062,8 +15059,13 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 6
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
/area/tether/surfacebase/library/study)
|
||||
"zn" = (
|
||||
/obj/random/tech_supply,
|
||||
/obj/structure/table/steel,
|
||||
@@ -15451,6 +15453,11 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/door/firedoor/glass,
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
"zQ" = (
|
||||
@@ -15460,6 +15467,11 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
"zR" = (
|
||||
@@ -15478,6 +15490,11 @@
|
||||
pixel_x = 2;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
"zS" = (
|
||||
@@ -15487,6 +15504,11 @@
|
||||
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
"zT" = (
|
||||
@@ -15515,23 +15537,12 @@
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
"zW" = (
|
||||
/obj/structure/table/woodentable,
|
||||
/obj/item/device/taperecorder{
|
||||
pixel_y = 0
|
||||
/obj/structure/cable/green{
|
||||
d1 = 2;
|
||||
d2 = 8;
|
||||
icon_state = "2-8"
|
||||
},
|
||||
/obj/machinery/atmospherics/unary/vent_pump/on{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/newscaster{
|
||||
pixel_x = 0;
|
||||
pixel_y = -28
|
||||
},
|
||||
/obj/item/device/retail_scanner/civilian{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/device/camera,
|
||||
/obj/item/device/tape,
|
||||
/turf/simulated/floor/carpet,
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
"zX" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
@@ -15859,14 +15870,23 @@
|
||||
/area/hallway/lower/third_south)
|
||||
"Aw" = (
|
||||
/obj/structure/table/woodentable,
|
||||
/obj/item/weapon/paper_bin{
|
||||
pixel_x = -3;
|
||||
pixel_y = 7
|
||||
/obj/item/device/taperecorder{
|
||||
pixel_y = 0
|
||||
},
|
||||
/obj/item/weapon/pen/invisible,
|
||||
/obj/machinery/light/small,
|
||||
/obj/machinery/atmospherics/unary/vent_pump/on{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/newscaster{
|
||||
pixel_x = 0;
|
||||
pixel_y = -28
|
||||
},
|
||||
/obj/item/device/retail_scanner/civilian{
|
||||
dir = 1
|
||||
},
|
||||
/obj/item/device/camera,
|
||||
/obj/item/device/tape,
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
/area/tether/surfacebase/library/study)
|
||||
"Ax" = (
|
||||
/obj/effect/floor_decal/borderfloor,
|
||||
/obj/effect/floor_decal/corner/lightgrey/border,
|
||||
@@ -15885,22 +15905,15 @@
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/hallway/lower/third_south)
|
||||
"Ay" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 1;
|
||||
pixel_y = -24
|
||||
},
|
||||
/obj/structure/table/woodentable,
|
||||
/obj/item/device/tvcamera,
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/on{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
dir = 8;
|
||||
pixel_x = 24;
|
||||
pixel_y = 6
|
||||
/obj/item/weapon/paper_bin{
|
||||
pixel_x = -3;
|
||||
pixel_y = 7
|
||||
},
|
||||
/obj/item/weapon/pen/invisible,
|
||||
/obj/machinery/light/small,
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
/area/tether/surfacebase/library/study)
|
||||
"Az" = (
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
@@ -17562,11 +17575,22 @@
|
||||
name = "\improper Surface Civilian Substation"
|
||||
})
|
||||
"CM" = (
|
||||
/obj/structure/bed/chair/office/dark{
|
||||
dir = 4
|
||||
/obj/machinery/firealarm{
|
||||
dir = 1;
|
||||
pixel_y = -24
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
/obj/structure/table/woodentable,
|
||||
/obj/item/device/tvcamera,
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/on{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
dir = 8;
|
||||
pixel_x = 24;
|
||||
pixel_y = 6
|
||||
},
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/tether/surfacebase/library/study)
|
||||
"CN" = (
|
||||
/obj/structure/noticeboard{
|
||||
pixel_y = -26
|
||||
@@ -18736,11 +18760,14 @@
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
"EJ" = (
|
||||
/obj/structure/bed/chair/office/dark{
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/hologram/holopad,
|
||||
/obj/structure/cable/green{
|
||||
icon_state = "2-4"
|
||||
d1 = 1;
|
||||
d2 = 2;
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
@@ -18793,15 +18820,13 @@
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
"EP" = (
|
||||
/obj/structure/bed/chair/office/dark{
|
||||
dir = 8
|
||||
/obj/structure/bed/chair/comfy/black{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
/obj/effect/landmark/start{
|
||||
name = "Librarian"
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
"EQ" = (
|
||||
/obj/structure/table/woodentable,
|
||||
@@ -19957,9 +19982,13 @@
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
"Gx" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
pixel_x = 26
|
||||
/obj/structure/bed/chair/office/dark{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 1;
|
||||
d2 = 2;
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
@@ -20796,10 +20825,26 @@
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/rnd/outpost/xenobiology/outpost_south_airlock)
|
||||
"HH" = (
|
||||
/obj/structure/shuttle/engine/propulsion,
|
||||
/turf/simulated/floor/reinforced,
|
||||
/turf/simulated/shuttle/plating/carry,
|
||||
/area/shuttle/tether/surface)
|
||||
/obj/effect/floor_decal/borderfloor{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 4
|
||||
},
|
||||
/obj/item/device/radio/intercom/department/security{
|
||||
dir = 4;
|
||||
icon_state = "secintercom";
|
||||
pixel_x = 24;
|
||||
pixel_y = 0
|
||||
},
|
||||
/obj/effect/floor_decal/borderfloor/corner2{
|
||||
dir = 5
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/bordercorner2{
|
||||
dir = 5
|
||||
},
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/common)
|
||||
"HI" = (
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/alarm{
|
||||
@@ -29887,10 +29932,17 @@
|
||||
/turf/simulated/floor/carpet,
|
||||
/area/library)
|
||||
"Xo" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
|
||||
/obj/structure/bed/chair/office/dark{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/hologram/holopad,
|
||||
/obj/structure/cable/green{
|
||||
icon_state = "2-4"
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 1;
|
||||
d2 = 2;
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
"Xp" = (
|
||||
@@ -30057,6 +30109,51 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/rnd/outpost/xenobiology/outpost_first_aid)
|
||||
"XB" = (
|
||||
/obj/machinery/papershredder,
|
||||
/obj/effect/floor_decal/borderfloor{
|
||||
dir = 1;
|
||||
icon_state = "borderfloor";
|
||||
pixel_y = 0
|
||||
},
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/camera/network/security,
|
||||
/turf/simulated/floor/tiled,
|
||||
/area/tether/surfacebase/security/frontdesk)
|
||||
"XC" = (
|
||||
/obj/structure/bed/chair/office/dark{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/green{
|
||||
d1 = 4;
|
||||
d2 = 8;
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/effect/landmark/start{
|
||||
name = "Librarian"
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
"XD" = (
|
||||
/obj/machinery/camera/network/outside{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/steel_dirty/virgo3b,
|
||||
/area/tether/surfacebase/outside/outside3)
|
||||
"XE" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
pixel_x = 26
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
dir = 1;
|
||||
pixel_x = 2;
|
||||
pixel_y = -28
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/area/library)
|
||||
"XF" = (
|
||||
/obj/machinery/power/apc{
|
||||
dir = 2;
|
||||
@@ -30066,6 +30163,11 @@
|
||||
/obj/structure/cable/green,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/rnd/outpost/xenobiology/outpost_first_aid)
|
||||
"XG" = (
|
||||
/obj/structure/shuttle/engine/propulsion,
|
||||
/turf/simulated/floor/reinforced,
|
||||
/turf/simulated/shuttle/plating/carry,
|
||||
/area/shuttle/tether/surface)
|
||||
"Zf" = (
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/on{
|
||||
dir = 1
|
||||
@@ -38347,7 +38449,7 @@ ac
|
||||
dW
|
||||
eq
|
||||
fn
|
||||
gd
|
||||
hB
|
||||
gQ
|
||||
fc
|
||||
iJ
|
||||
@@ -38627,7 +38729,7 @@ aM
|
||||
am
|
||||
bU
|
||||
cz
|
||||
dg
|
||||
eA
|
||||
fc
|
||||
es
|
||||
fp
|
||||
@@ -38903,7 +39005,7 @@ ab
|
||||
ab
|
||||
Om
|
||||
aq
|
||||
aq
|
||||
XD
|
||||
dT
|
||||
al
|
||||
ax
|
||||
@@ -39759,7 +39861,7 @@ aq
|
||||
aq
|
||||
ac
|
||||
af
|
||||
aX
|
||||
dg
|
||||
aX
|
||||
bZ
|
||||
cJ
|
||||
@@ -40191,9 +40293,9 @@ cr
|
||||
dd
|
||||
dn
|
||||
dQ
|
||||
eA
|
||||
fR
|
||||
gd
|
||||
gI
|
||||
HH
|
||||
hu
|
||||
hJ
|
||||
iP
|
||||
@@ -40657,7 +40759,7 @@ we
|
||||
xg
|
||||
xU
|
||||
zi
|
||||
zW
|
||||
Aw
|
||||
xg
|
||||
CG
|
||||
EE
|
||||
@@ -40762,7 +40864,7 @@ eb
|
||||
ct
|
||||
gb
|
||||
hx
|
||||
hB
|
||||
XB
|
||||
ia
|
||||
iW
|
||||
kB
|
||||
@@ -40799,7 +40901,7 @@ wf
|
||||
xg
|
||||
xV
|
||||
zj
|
||||
Aw
|
||||
Ay
|
||||
xg
|
||||
zT
|
||||
zT
|
||||
@@ -40941,7 +41043,7 @@ wg
|
||||
xg
|
||||
xW
|
||||
zm
|
||||
Ay
|
||||
CM
|
||||
xg
|
||||
CH
|
||||
zT
|
||||
@@ -41042,7 +41144,7 @@ bN
|
||||
cx
|
||||
eC
|
||||
Xb
|
||||
dX
|
||||
fR
|
||||
fl
|
||||
eI
|
||||
hx
|
||||
@@ -41086,7 +41188,7 @@ zP
|
||||
xg
|
||||
xg
|
||||
zT
|
||||
EG
|
||||
EP
|
||||
EG
|
||||
zT
|
||||
FU
|
||||
@@ -41650,11 +41752,11 @@ jM
|
||||
wI
|
||||
xT
|
||||
yA
|
||||
zT
|
||||
zT
|
||||
Xo
|
||||
CM
|
||||
zW
|
||||
Fr
|
||||
EJ
|
||||
Gx
|
||||
Xo
|
||||
Fc
|
||||
Fr
|
||||
Fr
|
||||
@@ -42080,10 +42182,10 @@ xg
|
||||
zT
|
||||
CF
|
||||
EC
|
||||
EP
|
||||
XC
|
||||
EC
|
||||
CF
|
||||
Gx
|
||||
XE
|
||||
xg
|
||||
tH
|
||||
Gy
|
||||
@@ -43947,7 +44049,7 @@ Nk
|
||||
Nl
|
||||
NJ
|
||||
NP
|
||||
HH
|
||||
XG
|
||||
KU
|
||||
bg
|
||||
Ok
|
||||
@@ -44089,7 +44191,7 @@ Nl
|
||||
Nl
|
||||
NK
|
||||
NP
|
||||
HH
|
||||
XG
|
||||
KU
|
||||
bg
|
||||
Ok
|
||||
@@ -44231,7 +44333,7 @@ Nm
|
||||
Nl
|
||||
NK
|
||||
NP
|
||||
HH
|
||||
XG
|
||||
KU
|
||||
bg
|
||||
Ok
|
||||
|
||||
@@ -214,6 +214,10 @@
|
||||
/area/tether/surfacebase/medical/maints
|
||||
name = "\improper Mining Upper Maintenance"
|
||||
|
||||
/area/tether/surfacebase/library/study
|
||||
name = "\improper Library Private Study"
|
||||
lightswitch = 0
|
||||
icon_state = "library"
|
||||
|
||||
/area/tether/surfacebase/security
|
||||
icon_state = "security"
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
Audio work within these folders are © Poojawa 2017, all rights reserved.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user