Merge branch 'VOREStation:master' into circuit-update

This commit is contained in:
Selis
2022-04-24 21:10:08 +02:00
committed by GitHub
42 changed files with 253902 additions and 20705 deletions
+17
View File
@@ -0,0 +1,17 @@
/obj/effect/wire_deleter
name = "wire deleter"
icon = 'icons/mob/screen1.dmi'
icon_state = "x2"
anchored = TRUE
unacidable = TRUE
simulated = FALSE
invisibility = 100
/obj/effect/wire_deleter/Initialize(mapload)
. = ..()
for(var/c in loc.contents)
if(istype(c, /obj/structure/cable))
if(prob(33))
qdel(c)
qdel(src)
@@ -233,7 +233,8 @@
prob(4);/obj/item/weapon/storage/pill_bottle/happy,
prob(4);/obj/item/weapon/storage/pill_bottle/zoom,
prob(4);/obj/item/seeds/ambrosiavulgarisseed,
prob(4);/obj/item/weapon/gun/energy/sizegun/old,
prob(4);/obj/item/weapon/gun/energy/sizegun,
prob(4);/obj/item/device/slow_sizegun,
prob(3);/obj/item/weapon/material/butterfly,
prob(3);/obj/item/weapon/material/butterfly/switchblade,
prob(3);/obj/item/clothing/gloves/knuckledusters,
+1 -1
View File
@@ -108,7 +108,7 @@ GLOBAL_LIST_EMPTY(all_cataloguers)
var/list/box_segments = list()
if(user.client)
box_segments = draw_box(target, scan_range, user.client)
color_box(box_segments, "#00FF00", scan_delay)
color_box(box_segments, "#00FFFF", scan_delay)
playsound(src, 'sound/machines/beep.ogg', 50)
+7 -4
View File
@@ -15,7 +15,7 @@
var/list/products = list() //Anything in this list will be listed for sale
var/list/prices = list() //Enter a type path with an associated number, and if the trader tries to sell something of that type, it will expect the number as the cost for that product
var/list/multiple = list() //Enter a type path with an associated number, and the trader will have however many of that type to sell as the number you entered
var/trading = FALSE //'Busy' - Only one person can trade at a time.
var/trading = FALSE //'Busy' - Only one person can trade at a time.
var/welcome_msg = "This machine accepts" //The first part of the welcome message
var/welcome_accepts_name = "curious coins" //The name of the kind of thing the trader expects, automatically set except on "item" mode, where if you enter a value it will not change it.
var/welcome_msg_finish = ". Would you like to browse the wares?" //The final part of the welcome message.
@@ -324,7 +324,8 @@
/obj/item/capture_crystal/random = 50,
/obj/item/device/perfect_tele = 10,
/obj/item/device/chameleon = 25,
/obj/item/weapon/gun/energy/sizegun/old = 25,
/obj/item/weapon/gun/energy/sizegun = 25,
/obj/item/device/slow_sizegun = 25,
/obj/item/weapon/implant/sizecontrol = 25,
/obj/item/clothing/under/hyperfiber/bluespace = 25,
/obj/item/device/nif/authentic = 1,
@@ -349,7 +350,8 @@
/obj/item/capture_crystal/random = 15,
/obj/item/device/perfect_tele = 20,
/obj/item/device/chameleon = 20,
/obj/item/weapon/gun/energy/sizegun/old = 10,
/obj/item/weapon/gun/energy/sizegun = 10,
/obj/item/device/slow_sizegun = 10,
/obj/item/weapon/implant/sizecontrol = 10,
/obj/item/clothing/under/hyperfiber/bluespace = 10,
/obj/item/device/nif/authentic = 100,
@@ -372,7 +374,8 @@
multiple = list(
/obj/item/capture_crystal/basic = 10,
/obj/item/capture_crystal/random = 2,
/obj/item/weapon/gun/energy/sizegun/old = 2,
/obj/item/weapon/gun/energy/sizegun = 2,
/obj/item/device/slow_sizegun = 2,
/obj/item/weapon/implant/sizecontrol = 2,
/obj/item/clothing/under/hyperfiber/bluespace = 2,
/obj/item/weapon/reagent_containers/food/snacks/jellyfishcore = 10
+11 -11
View File
@@ -1,24 +1,24 @@
// 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.
//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.
//values: ace = 11, ten = 10, unter = 2, ober = 3, king = 4
/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
for(var/suit in list("acorns","leaves","bells","hearts"))
switch(suit)
if("acorns") colour = "acorn_"
if("leaves") colour = "leaf_"
if("bells") colour = "bell_"
if("hearts") colour = "red_"
for(var/number in list("ace","ten","unter","ober","king"))
P = new()
P.name = "[number] of [suit]"
if(number == "ten")
@@ -134,7 +134,7 @@
// ====
/datum/medical_effect/itch
name = "Itch"
triggers = list("space_drugs" = 10)
triggers = list("bliss" = 10)
cures = list("inaprovaline")
cure_message = "The itching stops..."
@@ -196,7 +196,7 @@
/mob/living/simple_mob/vore/hostile/morph/will_show_tooltip()
return (!morphed)
/mob/living/simple_mob/vore/hostile/morph/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE)
/mob/living/simple_mob/vore/hostile/morph/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE, var/aura_animation = TRUE)
if(morphed && !ismob(form))
return
return ..()
@@ -108,6 +108,12 @@
incompatible_with = list(NIF_MATERIAL,NIF_THERMALS,NIF_NIGHTVIS)
vision_exclusive = TRUE
/datum/nifsoft/mesons/life()
if((. = ..()))
var/mob/living/carbon/human/H = nif.human
if(H.client)
H.client.screen |= global_hud.meson
/datum/nifsoft/material
name = "Material Scanner"
desc = "Similar to the worn Optical Material Scanner Goggles, these allow you to see objects through walls."
@@ -122,6 +128,12 @@
incompatible_with = list(NIF_MESONS,NIF_THERMALS,NIF_NIGHTVIS)
vision_exclusive = TRUE
/datum/nifsoft/material/life()
if((. = ..()))
var/mob/living/carbon/human/H = nif.human
if(H.client)
H.client.screen |= global_hud.material
/datum/nifsoft/thermals
name = "Thermal Scanner"
desc = "Similar to the worn Thermal Goggles, these allow you to see heat-emitting creatures through walls."
@@ -137,6 +149,12 @@
incompatible_with = list(NIF_MESONS,NIF_MATERIAL,NIF_NIGHTVIS)
vision_exclusive = TRUE
/datum/nifsoft/thermals/life()
if((. = ..()))
var/mob/living/carbon/human/H = nif.human
if(H.client)
H.client.screen |= global_hud.thermal
/datum/nifsoft/nightvis
name = "Low-Light Amp"
desc = "Similar to the worn Night Vision Goggles, these allow you to see in complete darkness."
@@ -150,3 +168,9 @@
darkness_view = 7
incompatible_with = list(NIF_MESONS,NIF_MATERIAL,NIF_THERMALS)
vision_exclusive = TRUE
/datum/nifsoft/nightvis/life()
if((. = ..()))
var/mob/living/carbon/human/H = nif.human
if(H.client)
H.client.screen |= global_hud.nvg
+5
View File
@@ -537,6 +537,7 @@ VIRGO3C_TURF_CREATE(/turf/simulated/floor/outdoors/sidewalk)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/outdoors/sidewalk/side)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/outdoors/sidewalk/slab)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/water)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/water/deep)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/tiled)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/reinforced)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/glass/reinforced)
@@ -545,6 +546,10 @@ VIRGO3C_TURF_CREATE(/turf/simulated/mineral)
VIRGO3C_TURF_CREATE(/turf/simulated/floor)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/wood)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/wood/sif)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/beach/sand)
VIRGO3C_TURF_CREATE(/turf/simulated/floor/tiled/asteroid_steel/outdoors)
/turf/simulated/open/virgo3c
VIRGO3C_SET_ATMOS
@@ -36,6 +36,7 @@
if(lockable)
locked = !locked
to_chat(user, "<span class='warning'>You [locked ? "enable" : "disable"] the safety lock on \the [src]!</span>")
return 1
/obj/item/weapon/gun/energy/locked/special_check(mob/user)
if(locked)
@@ -147,13 +147,6 @@
inhibitors = list("fluorine" = 0.01)
result_amount = 1
/decl/chemical_reaction/instant/nutridax
name = "Nutridax"
id = "nutridax"
result = "nutridax"
required_reagents = list("oxygen" = 1, "lipozine" = 1, "carbon" = 1)
result_amount = 3
///////////////////////////////////////////////////////////////////////////////////
/// Vore Drugs
@@ -370,7 +370,7 @@
/obj/item/weapon/reagent_containers/syringe/drugs/Initialize()
. = ..()
reagents.add_reagent("space_drugs", 5)
reagents.add_reagent("bliss", 5)
reagents.add_reagent("mindbreaker", 5)
reagents.add_reagent("cryptobiolin", 5)
//mode = SYRINGE_INJECT //VOREStation Edit - Starts capped
@@ -92,40 +92,3 @@
/datum/reagent/sleevingcure/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.remove_a_modifier_of_type(/datum/modifier/resleeving_sickness)
M.remove_a_modifier_of_type(/datum/modifier/faux_resleeving_sickness)
/datum/reagent/nutridax
name = "Nutridax"
id = "nutridax"
description = "A dieting aid that targets free-floating proteins and sugars."
taste_description = "bitterness"
reagent_state = SOLID
color = "#605048"
overdose = REAGENTS_OVERDOSE
/datum/reagent/nutridax/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
return
M.dizziness = 0
M.drowsyness = 0
M.eye_blurry = 0
M.SetConfused(0)
if(M.ingested)
for(var/datum/reagent/R in M.ingested.reagent_list)
if(istype(R, /datum/reagent/nutriment))
R.remove_self(removed * 30)
if(istype(R, /datum/reagent/drink))
R.remove_self(removed * 30)
/datum/reagent/nutridax/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
return
M.dizziness = 0
M.drowsyness = 0
M.eye_blurry = 0
M.SetConfused(0)
if(M.bloodstr)
for(var/datum/reagent/R in M.bloodstr.reagent_list)
if(istype(R, /datum/reagent/nutriment))
R.remove_self(removed * 20)
if(istype(R, /datum/reagent/drink))
R.remove_self(removed * 30)
+10 -2
View File
@@ -12,7 +12,7 @@
req_tech = list(TECH_BLUESPACE = 2, TECH_MATERIAL = 3, TECH_POWER = 2)
materials = list(MAT_STEEL = 4000, MAT_GLASS = 4000)
build_path = /obj/item/clothing/under/hyperfiber/bluespace
sort_string = "TAVAA"
sort_string = "TAVAB"
/datum/design/item/general/sizegun
name = "Size gun"
@@ -22,6 +22,14 @@
build_path = /obj/item/weapon/gun/energy/sizegun
sort_string = "TAVBA"
/datum/design/item/general/sizegun_gradual
name = "Gradual size gun"
id = "gradsizegun"
req_tech = list(TECH_BLUESPACE = 2, TECH_MATERIAL = 3, TECH_POWER = 2)
materials = list(MAT_STEEL = 3000, MAT_GLASS = 2000)
build_path = /obj/item/device/slow_sizegun
sort_string = "TAVBB"
/datum/design/item/general/bodysnatcher
name = "Body Snatcher"
id = "bodysnatcher"
@@ -51,7 +59,7 @@
req_tech = list(TECH_MAGNET = 3, TECH_ENGINEERING = 4, TECH_BLUESPACE = 1)
materials = list(MAT_STEEL = 1000,MAT_GLASS = 500)
build_path = /obj/item/weapon/mining_scanner/advanced
sort_string = "FBAAB"
sort_string = "FBAAB"
/datum/design/item/general/walkpod
name = "PodZu Music Player"
+10 -9
View File
@@ -65,7 +65,7 @@
*/
/mob/living/proc/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE)
/mob/living/proc/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE, var/aura_animation = TRUE)
if(!uncapped)
new_size = clamp(new_size, RESIZE_MINIMUM, RESIZE_MAXIMUM)
var/datum/component/resize_guard/guard = GetComponent(/datum/component/resize_guard)
@@ -99,17 +99,18 @@
resize.Translate(0, (vis_height/2) * (new_size - 1)) //Move the player up in the tile so their feet align with the bottom
animate(src, transform = resize, time = duration) //Animate the player resizing
var/aura_grow_to = change > 0 ? 2 : 0.5
var/aura_anim_duration = 5
var/aura_offset = change > 0 ? 0 : 10
var/aura_color = size_multiplier > new_size ? "#FF2222" : "#2222FF"
var/aura_loops = round((duration)/aura_anim_duration)
if(aura_animation)
var/aura_grow_to = change > 0 ? 2 : 0.5
var/aura_anim_duration = 5
var/aura_offset = change > 0 ? 0 : 10
var/aura_color = size_multiplier > new_size ? "#FF2222" : "#2222FF"
var/aura_loops = round((duration)/aura_anim_duration)
animate_aura(src, color = aura_color, offset = aura_offset, anim_duration = aura_anim_duration, loops = aura_loops, grow_to = aura_grow_to)
animate_aura(src, color = aura_color, offset = aura_offset, anim_duration = aura_anim_duration, loops = aura_loops, grow_to = aura_grow_to)
else
update_transform() //Lame way
/mob/living/carbon/human/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE)
/mob/living/carbon/human/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE, var/aura_animation = TRUE)
if(!resizable && !ignore_prefs)
return 1
if(species)
@@ -123,7 +124,7 @@
apply_hud(index, HI)
// Optimize mannequins - never a point to animating or doing HUDs on these.
/mob/living/carbon/human/dummy/mannequin/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE)
/mob/living/carbon/human/dummy/mannequin/resize(var/new_size, var/animate = TRUE, var/uncapped = FALSE, var/ignore_prefs = FALSE, var/aura_animation = TRUE)
size_multiplier = new_size
/**
@@ -0,0 +1,221 @@
#define SIZE_SHRINK 0
#define SIZE_GROW 1
/obj/item/device/slow_sizegun
name = "gradual size gun"
desc = "A highly advanced ray gun, designed for progressive and gradual changing of size."
icon = 'icons/obj/gun_vr.dmi'
icon_state = "sizegun-old-0"
var/base_icon_state = "sizegun-old"
w_class = ITEMSIZE_NORMAL
origin_tech = list(TECH_BLUESPACE = 4)
force = 0
slot_flags = SLOT_BELT
var/beam_range = 4 // How many tiles away it can scan. Changing this also changes the box size.
var/busy = FALSE // Set to true when scanning, to stop multiple scans.
var/sizeshift_mode = SIZE_SHRINK
var/dorm_size = TRUE
var/size_increment = 0.01
var/current_target
/obj/item/device/slow_sizegun/update_icon()
icon_state = "[base_icon_state]-[sizeshift_mode]"
if(busy)
icon_state = "[icon_state]-active"
/obj/item/device/slow_sizegun/proc/should_stop(var/mob/living/target, var/mob/living/user, var/active_hand)
if(!target || !user || !active_hand || !istype(target) || !istype(user) || !busy)
return TRUE
if(user.get_active_hand() != active_hand)
return TRUE
if(user.incapacitated(INCAPACITATION_DEFAULT))
return TRUE
if(get_dist(user, target) > beam_range)
return TRUE
var/unresizable = FALSE
if(ishuman(target))
var/mob/living/carbon/human/H = target
if(istype(H.gloves, /obj/item/clothing/gloves/bluespace))
unresizable = TRUE
return
if(!(target.resizable))
unresizable = TRUE
if(unresizable)
return TRUE
if(!(target.has_large_resize_bounds()) && (target.get_effective_size() >= RESIZE_MAXIMUM) && sizeshift_mode == SIZE_GROW)
return TRUE
if(target.get_effective_size() >= RESIZE_MAXIMUM_DORMS && sizeshift_mode == SIZE_GROW)
return TRUE
if(!(target.has_large_resize_bounds()) && (target.get_effective_size() <= RESIZE_MINIMUM) && sizeshift_mode == SIZE_SHRINK)
return TRUE
if(target.get_effective_size() <= RESIZE_MINIMUM_DORMS && sizeshift_mode == SIZE_SHRINK)
return TRUE
return FALSE
/obj/item/device/slow_sizegun/afterattack(atom/target, mob/user, proximity_flag)
// Things that invalidate the scan immediately.
if(isturf(target))
for(var/atom/A as anything in target) // If we can't scan the turf, see if we can scan anything on it, to help with aiming.
if(isliving(A))
target = A
break
if(busy && !(target == current_target))
to_chat(user, span("warning", "\The [src] is already targeting something."))
return
if(!isliving(target))
to_chat(user, span("warning", "\the [target] is not a valid target."))
return
var/mob/living/L = target
if(get_dist(target, user) > beam_range)
to_chat(user, span("warning", "You are too far away from \the [target] to affect it. Get closer."))
return
if(target == current_target && busy)
busy = FALSE
return
var/unresizable = FALSE
if(ishuman(L))
var/mob/living/carbon/human/H = L
if(istype(H.gloves, /obj/item/clothing/gloves/bluespace))
unresizable = TRUE
return
if(!(L.resizable))
unresizable = TRUE
if(unresizable)
to_chat(user, span("warning", "\the [target] is immune to resizing."))
// Start the effects
current_target = target
busy = TRUE
update_icon()
var/datum/beam/scan_beam = user.Beam(target, icon = 'icons/effects/beam_vr.dmi', icon_state = "zappy1", time = 6000)
var/filter = filter(type = "outline", size = 1, color = "#00FF00")
target.filters += filter
var/list/box_segments = list()
if(user.client)
box_segments = draw_box(target, beam_range, user.client)
color_box(box_segments, "#00FF00", 5)
playsound(src, 'sound/weapons/wave.ogg', 50)
var/active_hand = user.get_active_hand()
while(!should_stop(target, user, active_hand))
stoplag(3)
if(sizeshift_mode == SIZE_SHRINK)
L.resize((L.get_effective_size() - size_increment), uncapped = L.has_large_resize_bounds(), aura_animation = FALSE)
else if(sizeshift_mode == SIZE_GROW)
L.resize((L.get_effective_size() + size_increment), uncapped = L.has_large_resize_bounds(), aura_animation = FALSE)
busy = FALSE
current_target = null
// Now clean up the effects.
update_icon()
QDEL_NULL(scan_beam)
if(target)
target.filters -= filter
if(user.client) // If for some reason they logged out mid-scan the box will be gone anyways.
delete_box(box_segments, user.client)
/obj/item/device/slow_sizegun/attack_self(mob/living/user)
if(busy)
busy = !busy
else
sizeshift_mode = !sizeshift_mode
update_icon()
to_chat(user, span("notice", "\The [src] will now [sizeshift_mode ? "grow" : "shrink"] its targets."))
#undef SIZE_SHRINK
#undef SIZE_GROW
#define ICON_SIZE 32
// Draws a box showing the limits of movement while scanning something.
// Only the client supplied will see the box.
/obj/item/device/slow_sizegun/proc/draw_box(atom/A, box_size, client/C)
. = list()
// Things moved with pixel_[x|y] will move the box, so this is to correct that.
var/pixel_x_correction = -A.pixel_x
var/pixel_y_correction = -A.pixel_y
// First, place the bottom-left corner.
. += draw_line(A, SOUTHWEST, (-box_size * ICON_SIZE) + pixel_x_correction, (-box_size * ICON_SIZE) + pixel_y_correction, C)
// Make a line on the bottom, going right.
for(var/i = 1 to (box_size * 2) - 1)
var/x_displacement = (-box_size * ICON_SIZE) + (ICON_SIZE * i) + pixel_x_correction
var/y_displacement = (-box_size * ICON_SIZE) + pixel_y_correction
. += draw_line(A, SOUTH, x_displacement, y_displacement, C)
// Bottom-right corner.
. += draw_line(A, SOUTHEAST, (box_size * ICON_SIZE) + pixel_x_correction, (-box_size * ICON_SIZE) + pixel_y_correction, C)
// Second line, for the right side going up.
for(var/i = 1 to (box_size * 2) - 1)
var/x_displacement = (box_size * ICON_SIZE) + pixel_x_correction
var/y_displacement = (-box_size * ICON_SIZE) + (ICON_SIZE * i) + pixel_y_correction
. += draw_line(A, EAST, x_displacement, y_displacement, C)
// Top-right corner.
. += draw_line(A, NORTHEAST, (box_size * ICON_SIZE) + pixel_x_correction, (box_size * ICON_SIZE) + pixel_y_correction, C)
// Third line, for the top, going right.
for(var/i = 1 to (box_size * 2) - 1)
var/x_displacement = (-box_size * ICON_SIZE) + (ICON_SIZE * i) + pixel_x_correction
var/y_displacement = (box_size * ICON_SIZE) + pixel_y_correction
. += draw_line(A, NORTH, x_displacement, y_displacement, C)
// Top-left corner.
. += draw_line(A, NORTHWEST, (-box_size * ICON_SIZE) + pixel_x_correction, (box_size * ICON_SIZE) + pixel_y_correction, C)
// Fourth and last line, for the left side going up.
for(var/i = 1 to (box_size * 2) - 1)
var/x_displacement = (-box_size * ICON_SIZE) + pixel_x_correction
var/y_displacement = (-box_size * ICON_SIZE) + (ICON_SIZE * i) + pixel_y_correction
. += draw_line(A, WEST, x_displacement, y_displacement, C)
#undef ICON_SIZE
// Draws an individual segment of the box.
/obj/item/device/slow_sizegun/proc/draw_line(atom/A, line_dir, line_pixel_x, line_pixel_y, client/C)
var/image/line = image(icon = 'icons/effects/effects.dmi', loc = A, icon_state = "stripes", dir = line_dir)
line.pixel_x = line_pixel_x
line.pixel_y = line_pixel_y
line.plane = PLANE_FULLSCREEN // It's technically a HUD element but it doesn't need to show above item slots.
line.appearance_flags = RESET_TRANSFORM|RESET_COLOR|RESET_ALPHA|NO_CLIENT_COLOR|TILE_BOUND
line.alpha = 125
C.images += line
return line
// Removes the box that was generated before from the client.
/obj/item/device/slow_sizegun/proc/delete_box(list/box_segments, client/C)
for(var/i in box_segments)
C.images -= i
qdel(i)
/obj/item/device/slow_sizegun/proc/color_box(list/box_segments, new_color, new_time)
for(var/i in box_segments)
animate(i, color = new_color, time = new_time)
-5
View File
@@ -73,11 +73,6 @@
. = ..()
. += "<span class='info'>It is currently set at [size_set_to*100]%</span>"
/obj/item/weapon/gun/energy/sizegun/old
desc = "A highly advanced ray gun with a knob on the side to adjust the size you desire. This one seems to be an older model, but still functional. Warning: Do not insert into mouth."
icon_state = "sizegun-old"
item_state = "sizegun-old"
/obj/item/weapon/gun/energy/sizegun/admin
name = "modified size gun"
desc = "An older model sizegun, modified to be without limits on minimum/maximum size, and have an unlimited charge. Time to show 'em that size does matter."
Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+68
View File
@@ -0,0 +1,68 @@
/obj/effect/map_effect/portal/master/side_a/gb_wilds/north
name = "to_north_wilds"
portal_id = "north_wilds_transition"
/obj/effect/map_effect/portal/master/side_b/gb_wilds/north
name = "from_north_wilds"
portal_id = "north_wilds_transition"
/obj/effect/map_effect/portal/master/side_a/gb_wilds/south
name = "to_south_wilds"
portal_id = "south_wilds_transition"
/obj/effect/map_effect/portal/master/side_b/gb_wilds/south
name = "from_south_wilds"
portal_id = "south_wilds_transition"
/obj/effect/map_effect/portal/master/side_a/gb_wilds/east
name = "to_east_wilds"
portal_id = "east_wilds_transition"
/obj/effect/map_effect/portal/master/side_b/gb_wilds/east
name = "from_east_wilds"
portal_id = "east_wilds_transition"
/obj/effect/map_effect/portal/master/side_a/gb_wilds/west
name = "to_west_wilds"
portal_id = "west_wilds_transition"
/obj/effect/map_effect/portal/master/side_b/gb_wilds/west
name = "from_west_wilds"
portal_id = "west_wilds_transition"
/obj/effect/map_effect/portal/master/side_a/gb_wilds/north_south
name = "to_south_wilds"
portal_id = "north_south_wilds_transition"
/obj/effect/map_effect/portal/master/side_b/gb_wilds/north_south
name = "to_north_wilds"
portal_id = "north_south_wilds_transition"
/obj/effect/map_effect/portal/master/side_a/gb_wilds/east_west
name = "to_west_wilds"
portal_id = "east_west_wilds_transition"
/obj/effect/map_effect/portal/master/side_b/gb_wilds/east_west
name = "to_east_wilds"
portal_id = "east_west_wilds_transition"
/area/groundbase/wilderness
name = "wilderness"
icon_state = "greblacir"
/area/groundbase/wilderness/north
/area/groundbase/wilderness/north/unexplored
icon_state = "orablacir"
/area/groundbase/wilderness/north/cave
icon_state = "yelblacir"
/area/groundbase/wilderness/south
/area/groundbase/wilderness/south/unexplored
icon_state = "orablacir"
/area/groundbase/wilderness/south/cave
icon_state = "yelblacir"
/area/groundbase/wilderness/east
/area/groundbase/wilderness/east/unexplored
icon_state = "orablacir"
/area/groundbase/wilderness/east/cave
icon_state = "yelblacir"
/area/groundbase/wilderness/west
/area/groundbase/wilderness/west/unexplored
icon_state = "orablacir"
/area/groundbase/wilderness/west/cave
icon_state = "yelblacir"
+748 -597
View File
File diff suppressed because it is too large Load Diff
+26 -23
View File
@@ -8937,6 +8937,9 @@
/obj/structure/disposalpipe/segment,
/turf/simulated/floor/tiled/dark,
/area/groundbase/science/hall)
"AD" = (
/turf/simulated/mineral/cave/virgo3c,
/area/groundbase/level2/westspur)
"AF" = (
/turf/simulated/floor/tiled/freezer/cold,
/area/groundbase/civilian/kitchen/freezer)
@@ -17996,6 +17999,9 @@ xE
xE
xE
xE
xE
xE
xE
eN
eN
eN
@@ -18017,17 +18023,14 @@ eN
eN
eN
eN
eN
eN
eN
eN
eN
eN
eN
eN
eN
eN
eN
AD
AD
AD
AD
AD
AD
AD
AD
Zx
Zx
Zx
@@ -18138,6 +18141,8 @@ xE
xE
bY
bY
xE
xE
eN
eN
eN
@@ -18161,14 +18166,12 @@ eN
eN
eN
eN
eN
eN
eN
eN
eN
eN
eN
eN
AD
AD
AD
AD
AD
AD
jG
jG
Zx
@@ -18307,10 +18310,10 @@ eN
eN
eN
eN
eN
eN
eN
eN
AD
AD
AD
AD
jG
jG
Zx
+1
View File
@@ -8,6 +8,7 @@
#include "..\offmap_vr\common_offmaps.dm"
#include "..\tether\tether_jobs.dm"
#include "groundbase_poi_stuff.dm"
#include "gb-wilds.dm"
#if !AWAY_MISSION_TEST //Don't include these for just testing away missions
#include "gb-z1.dmm"
+39
View File
@@ -130,6 +130,38 @@
name = "Science Break Room"
lightswitch = 1
/area/groundbase/science/outpost
name = "Science Outpost"
lightswitch = 1
/area/groundbase/science/outpost/substation
name = "Science Outpost Substation"
/area/groundbase/science/outpost/atmos
name = "Science Outpost Atmospherics"
lightswitch = 0
/area/groundbase/science/outpost/anomaly_lab
name = "Science Outpost Anomaly Lab"
lightswitch = 0
/area/groundbase/science/outpost/anomaly_storage
name = "Science Outpost Anomaly Storage"
lightswitch = 0
/area/groundbase/science/outpost/anomaly_testing
name = "Science Outpost Anomaly Testing"
lightswitch = 0
/area/groundbase/science/outpost/toxins_lab
name = "Science Outpost Toxins Lab"
lightswitch = 0
/area/groundbase/science/outpost/toxins_storage
name = "Science Outpost Toxins Storage"
lightswitch = 0
/area/groundbase/science/outpost/toxing_gasworks
name = "Science Outpost Toxins Gasworks"
lightswitch = 0
/area/groundbase/science/outpost/toxins_mixing
name = "Science Outpost Toxins Mixing"
lightswitch = 0
/area/groundbase/science/outpost/toxins_hallway
name = "Science Outpost Toxins Hallway"
/area/groundbase/command
name = "Command"
holomap_color = HOLOMAP_AREACOLOR_COMMAND
@@ -288,6 +320,13 @@
/area/groundbase/engineering/atmos/monitoring
name = "Atmospherics Monitoring"
lightswitch = 1
/area/groundbase/engineering/solarshed
name = "Solar Shed"
lightswitch = 1
/area/groundbase/engineering/solarfield
name = "Solar Field"
lightswitch = 1
sound_env = SOUND_ENVIRONMENT_MOUNTAINS
/area/groundbase/cargo
name = "Cargo"
+166 -17
View File
@@ -2,18 +2,22 @@
#define Z_LEVEL_GB_BOTTOM 1
#define Z_LEVEL_GB_MIDDLE 2
#define Z_LEVEL_GB_TOP 3
#define Z_LEVEL_CENTCOM 4
#define Z_LEVEL_MISC 5
#define Z_LEVEL_MINING 6
#define Z_LEVEL_BEACH 7
#define Z_LEVEL_BEACH_CAVE 8
#define Z_LEVEL_AEROSTAT 9
#define Z_LEVEL_AEROSTAT_SURFACE 10
#define Z_LEVEL_DEBRISFIELD 11
#define Z_LEVEL_FUELDEPOT 12
#define Z_LEVEL_OFFMAP1 13
#define Z_LEVEL_GATEWAY 14
#define Z_LEVEL_OM_ADVENTURE 15
#define Z_LEVEL_GB_WILD_N 4
#define Z_LEVEL_GB_WILD_S 5
#define Z_LEVEL_GB_WILD_E 6
#define Z_LEVEL_GB_WILD_W 7
#define Z_LEVEL_CENTCOM 8
#define Z_LEVEL_MISC 9
#define Z_LEVEL_MINING 10
#define Z_LEVEL_BEACH 11
#define Z_LEVEL_BEACH_CAVE 12
#define Z_LEVEL_AEROSTAT 13
#define Z_LEVEL_AEROSTAT_SURFACE 14
#define Z_LEVEL_DEBRISFIELD 15
#define Z_LEVEL_FUELDEPOT 16
#define Z_LEVEL_OFFMAP1 17
#define Z_LEVEL_GATEWAY 18
#define Z_LEVEL_OM_ADVENTURE 19
//Camera networks
#define NETWORK_HALLS "Halls"
@@ -161,7 +165,21 @@
/area/groundbase/poi/outdoor/cabin4,
/area/groundbase/poi/outdoor/cabin5,
/area/groundbase/unexplored/outdoors,
/area/groundbase/unexplored/rock
/area/groundbase/unexplored/rock,
/area/groundbase/engineering/solarshed,
/area/groundbase/engineering/solarfield,
/area/groundbase/wilderness/north,
/area/groundbase/wilderness/north/unexplored,
/area/groundbase/wilderness/north/cave,
/area/groundbase/wilderness/south,
/area/groundbase/wilderness/south/unexplored,
/area/groundbase/wilderness/south/cave,
/area/groundbase/wilderness/east,
/area/groundbase/wilderness/east/unexplored,
/area/groundbase/wilderness/east/cave,
/area/groundbase/wilderness/west,
/area/groundbase/wilderness/west/unexplored,
/area/groundbase/wilderness/west/cave
)
unit_test_exempt_from_atmos = list()
@@ -193,6 +211,23 @@
list("Grass Cave")
)
lateload_gb_north = list(
list("Northern Wilds 1"),
list("Northern Wilds 2")
)
lateload_gb_south = list(
list("Southern Wilds 1"),
list("Southern Wilds 2")
)
lateload_gb_east = list(
list("Eastern Wilds 1"),
list("Eastern Wilds 2")
)
lateload_gb_west = list(
list("Western Wilds 1"),
list("Western Wilds 2")
)
ai_shell_restricted = TRUE
ai_shell_allowed_levels = list(
Z_LEVEL_GB_BOTTOM,
@@ -229,7 +264,11 @@
expected_z_levels = list(
Z_LEVEL_GB_BOTTOM,
Z_LEVEL_GB_MIDDLE,
Z_LEVEL_GB_TOP
Z_LEVEL_GB_TOP,
Z_LEVEL_GB_WILD_N,
Z_LEVEL_GB_WILD_S,
Z_LEVEL_GB_WILD_E,
Z_LEVEL_GB_WILD_W
)
/datum/planet/virgo3b
expected_z_levels = list(
@@ -264,7 +303,7 @@
initial_generic_waypoints = list()
initial_restricted_waypoints = list()
extra_z_levels = list(Z_LEVEL_MINING)
extra_z_levels = list()
/obj/effect/overmap/visitable/sector/virgo3c
name = "Virgo 3C"
@@ -287,8 +326,13 @@
initial_generic_waypoints = list("groundbase", "gb_excursion_pad")
initial_restricted_waypoints = list()
extra_z_levels = list()
extra_z_levels = list(
Z_LEVEL_MINING,
Z_LEVEL_GB_WILD_N,
Z_LEVEL_GB_WILD_S,
Z_LEVEL_GB_WILD_E,
Z_LEVEL_GB_WILD_W
)
// For making the 6-in-1 holomap, we calculate some offsets
#define SHIP_MAP_SIZE 140 // Width and height of compiled in tether z levels.
@@ -393,3 +437,108 @@
desc = "The Virgo 2 Aerostat away mission."
mappath = 'maps/expedition_vr/aerostat/aerostat.dmm'
associated_map_datum = /datum/map_z_level/common_lateload/away_aerostat
////////////////////////////////////////////////////////////////////////
/datum/map_template/gb_lateload/wilds
name = "GB Wilderness Submap"
desc = "Please do not use this."
mappath = null
associated_map_datum = null
/datum/map_z_level/gb_lateload/gb_north_wilds
name = "GB North Wilderness"
z = Z_LEVEL_GB_WILD_N
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT|MAP_LEVEL_CONSOLES
/datum/map_z_level/gb_lateload/gb_south_wilds
name = "GB South Wilderness"
z = Z_LEVEL_GB_WILD_S
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT|MAP_LEVEL_CONSOLES
/datum/map_z_level/gb_lateload/gb_east_wilds
name = "GB East Wilderness"
z = Z_LEVEL_GB_WILD_E
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT|MAP_LEVEL_CONSOLES
/datum/map_z_level/gb_lateload/gb_west_wilds
name = "GB West Wilderness"
z = Z_LEVEL_GB_WILD_W
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT|MAP_LEVEL_CONSOLES
/datum/map_template/gb_lateload/wilds/north/on_map_loaded(z)
. = ..()
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, Z_LEVEL_GB_WILD_N, world.maxx, world.maxy)
new /datum/random_map/noise/ore/mining(null, 1, 1, Z_LEVEL_GB_WILD_N, 64, 64)
/datum/map_template/gb_lateload/wilds/south/on_map_loaded(z)
. = ..()
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, Z_LEVEL_GB_WILD_S, world.maxx, world.maxy)
new /datum/random_map/noise/ore/mining(null, 1, 1, Z_LEVEL_GB_WILD_N, 64, 64)
/datum/map_template/gb_lateload/wilds/east/on_map_loaded(z)
. = ..()
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, Z_LEVEL_GB_WILD_E, world.maxx, world.maxy)
new /datum/random_map/noise/ore/mining(null, 1, 1, Z_LEVEL_GB_WILD_N, 64, 64)
/datum/map_template/gb_lateload/wilds/west/on_map_loaded(z)
. = ..()
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, Z_LEVEL_GB_WILD_W, world.maxx, world.maxy)
new /datum/random_map/noise/ore/mining(null, 1, 1, Z_LEVEL_GB_WILD_N, 64, 64)
/datum/map_template/gb_lateload/wilds/north/type1
name = "Northern Wilds 1"
desc = "Wilderness"
mappath = 'maps/groundbase/northwilds/northwilds1.dmm'
associated_map_datum = /datum/map_z_level/gb_lateload/gb_north_wilds
/datum/map_template/gb_lateload/wilds/north/type2
name = "Northern Wilds 2"
desc = "Wilderness"
mappath = 'maps/groundbase/northwilds/northwilds2.dmm'
associated_map_datum = /datum/map_z_level/gb_lateload/gb_north_wilds
/datum/map_template/gb_lateload/wilds/south/type1
name = "Southern Wilds 1"
desc = "Wilderness"
mappath = 'maps/groundbase/southwilds/southwilds1.dmm'
associated_map_datum = /datum/map_z_level/gb_lateload/gb_south_wilds
/datum/map_template/gb_lateload/wilds/south/type2
name = "Southern Wilds 2"
desc = "Wilderness"
mappath = 'maps/groundbase/southwilds/southwilds2.dmm'
associated_map_datum = /datum/map_z_level/gb_lateload/gb_south_wilds
/datum/map_template/gb_lateload/wilds/east/type1
name = "Eastern Wilds 1"
desc = "Wilderness"
mappath = 'maps/groundbase/eastwilds/eastwilds1.dmm'
associated_map_datum = /datum/map_z_level/gb_lateload/gb_east_wilds
/datum/map_template/gb_lateload/wilds/east/type2
name = "Eastern Wilds 2"
desc = "Wilderness"
mappath = 'maps/groundbase/eastwilds/eastwilds2.dmm'
associated_map_datum = /datum/map_z_level/gb_lateload/gb_east_wilds
/datum/map_template/gb_lateload/wilds/west/type1
name = "Western Wilds 1"
desc = "Wilderness"
mappath = 'maps/groundbase/westwilds/westwilds1.dmm'
associated_map_datum = /datum/map_z_level/gb_lateload/gb_west_wilds
/datum/map_template/gb_lateload/wilds/west/type2
name = "Western Wilds 2"
desc = "Wilderness"
mappath = 'maps/groundbase/westwilds/westwilds2.dmm'
associated_map_datum = /datum/map_z_level/gb_lateload/gb_west_wilds
/*
/datum/map_template/gb_lateload/wilds/north1/on_map_loaded(z)
. = ..()
seed_submaps(list(z), 60, /area/om_adventure/grasscave/unexplored, /datum/map_template/om_adventure/outdoor)
seed_submaps(list(z), 60, /area/om_adventure/grasscave/rocks, /datum/map_template/om_adventure/cave)
new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, z, world.maxx - 4, world.maxy - 4)
new /datum/random_map/noise/ore/grasscave(null, 1, 1, z, 64, 64)
*/
////////////////////////////////////////////////////////////////////////
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+134 -103
View File
@@ -92,7 +92,7 @@
/turf/simulated/floor/carpet,
/area/talon_v2/crew_quarters/pilot_room)
"am" = (
/obj/machinery/computer/ship/navigation{
/obj/item/modular_computer/console/preset/talon{
dir = 4
},
/turf/simulated/floor/tiled/techfloor,
@@ -193,6 +193,22 @@
/obj/item/device/paicard,
/turf/simulated/floor/tiled/techfloor,
/area/talon_v2/workroom)
"aw" = (
/obj/structure/table/standard,
/obj/item/clothing/gloves/sterile/nitrile,
/obj/item/clothing/mask/surgical,
/obj/item/clothing/suit/surgicalapron,
/obj/structure/table/standard,
/obj/structure/table/standard,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
/obj/structure/extinguisher_cabinet{
dir = 1;
pixel_y = -32
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"ax" = (
/obj/machinery/camera/network/talon{
dir = 1
@@ -802,9 +818,9 @@
/turf/simulated/floor/reinforced,
/area/talon_v2/ofd_ops)
"bX" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
/obj/structure/table/standard,
/obj/machinery/chemical_dispenser/full,
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"bY" = (
@@ -1348,6 +1364,12 @@
/obj/effect/shuttle_landmark/premade/talon_v2_near_fore_port,
/turf/space,
/area/space)
"dS" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 10
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"dT" = (
/obj/machinery/light{
dir = 8
@@ -4037,15 +4059,11 @@
/turf/simulated/floor/carpet,
/area/talon_v2/crew_quarters/sec_room)
"mE" = (
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 8
},
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 8
},
/obj/structure/disposalpipe/segment{
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"mG" = (
@@ -5314,6 +5332,11 @@
/obj/machinery/camera/network/talon{
dir = 1
},
/obj/machinery/light_switch{
dir = 1;
pixel_x = 8;
pixel_y = -26
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"qI" = (
@@ -5539,6 +5562,7 @@
"rG" = (
/obj/structure/table/standard,
/obj/machinery/reagentgrinder,
/obj/machinery/atmospherics/unary/vent_pump/on,
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"rI" = (
@@ -7460,7 +7484,14 @@
/turf/simulated/floor/tiled/techmaint,
/area/talon_v2/secure_storage)
"xQ" = (
/obj/machinery/suit_cycler/vintage/tmedic,
/obj/machinery/light{
dir = 4
},
/obj/structure/closet/walllocker_double/medical/east,
/obj/random/medical,
/obj/random/medical,
/obj/random/medical,
/obj/random/medical,
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"xR" = (
@@ -7516,12 +7547,12 @@
/turf/simulated/floor/plating,
/area/talon_v2/engineering/atmospherics)
"yd" = (
/obj/machinery/light_switch{
dir = 4;
pixel_x = -24
},
/obj/item/device/mass_spectrometer/adv,
/obj/structure/table/standard,
/obj/machinery/alarm/talon{
dir = 4;
pixel_x = -22
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"yh" = (
@@ -7539,10 +7570,11 @@
/turf/simulated/floor/wood,
/area/talon_v2/crew_quarters/cap_room)
"yj" = (
/obj/structure/table/standard,
/obj/machinery/chemical_dispenser/full,
/obj/machinery/light{
dir = 4
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
@@ -7669,14 +7701,9 @@
/turf/simulated/floor/plating,
/area/talon_v2/bridge)
"yx" = (
/obj/machinery/light/small{
dir = 8
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 5
},
/obj/random/medical,
/obj/random/medical,
/obj/random/medical,
/obj/random/medical,
/obj/structure/closet/walllocker_double/medical/west,
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"yz" = (
@@ -7696,7 +7723,9 @@
/turf/simulated/floor/tiled/techmaint,
/area/talon_v2/maintenance/wing_starboard)
"yD" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 9
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"yF" = (
@@ -7935,21 +7964,7 @@
/turf/simulated/floor/plating,
/area/talon_v2/brig)
"zw" = (
/obj/machinery/door/airlock/medical{
name = "Medical Storage";
req_one_access = list(301)
},
/obj/machinery/door/firedoor/glass/talon,
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
/obj/machinery/sleep_console{
dir = 4
},
/turf/simulated/floor/tiled/white,
@@ -8092,15 +8107,11 @@
/turf/simulated/floor/plating,
/area/talon_v2/bridge)
"zZ" = (
/obj/structure/table/standard,
/obj/item/clothing/gloves/sterile/nitrile,
/obj/item/clothing/mask/surgical,
/obj/item/clothing/suit/surgicalapron,
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 5
},
/obj/structure/sign/warning/nosmoking_1{
pixel_x = 26
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
@@ -8117,9 +8128,11 @@
/turf/simulated/floor/plating,
/area/talon_v2/engineering/port_store)
"Ag" = (
/obj/machinery/alarm/talon{
dir = 4;
pixel_x = -22
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 4
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
@@ -8577,15 +8590,25 @@
/area/talon_v2/medical)
"BU" = (
/obj/structure/table/standard,
/obj/item/weapon/storage/firstaid/regular,
/obj/item/weapon/storage/firstaid/adv{
pixel_x = 2;
pixel_y = 5
/obj/item/weapon/storage/firstaid/surgery,
/obj/item/stack/nanopaste{
pixel_x = -7;
pixel_y = -4
},
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
/obj/item/stack/nanopaste{
pixel_x = 9;
pixel_y = -4
},
/obj/item/device/robotanalyzer{
pixel_y = -8
},
/obj/machinery/light,
/obj/machinery/button/holosign{
id = "tal_surg";
name = "surgery sign switch";
pixel_x = -10;
pixel_y = -22
},
/obj/structure/closet/walllocker_double/medical/south,
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"BV" = (
@@ -8601,22 +8624,15 @@
/area/shuttle/talonpod)
"BX" = (
/obj/structure/table/standard,
/obj/item/weapon/storage/firstaid/surgery,
/obj/item/stack/nanopaste{
pixel_x = -7;
pixel_y = -4
/obj/item/weapon/storage/firstaid/regular,
/obj/item/weapon/storage/firstaid/adv{
pixel_x = 2;
pixel_y = 5
},
/obj/item/stack/nanopaste{
pixel_x = 9;
pixel_y = -4
},
/obj/item/device/robotanalyzer{
pixel_y = -8
},
/obj/machinery/alarm/talon{
dir = 8;
pixel_x = 22
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
/obj/structure/closet/walllocker_double/medical/south,
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"BY" = (
@@ -9978,13 +9994,9 @@
/turf/simulated/floor/tiled/techfloor,
/area/talon_v2/central_hallway/fore)
"Gx" = (
/obj/machinery/light/small{
dir = 4
},
/obj/structure/extinguisher_cabinet{
dir = 8;
pixel_x = 30
},
/obj/structure/closet/walllocker_double/medical/east,
/obj/item/bodybag/cryobag,
/obj/item/bodybag/cryobag,
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"Gy" = (
@@ -11340,6 +11352,9 @@
/area/talon_v2/central_hallway/port)
"Kp" = (
/obj/machinery/chem_master,
/obj/machinery/light{
dir = 1
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
"Ks" = (
@@ -12277,11 +12292,8 @@
/turf/simulated/floor/reinforced/airless,
/area/space)
"Na" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
dir = 6
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
@@ -14988,6 +15000,28 @@
/obj/structure/handrail,
/turf/simulated/floor/reinforced/airless,
/area/talon_v2/maintenance/aft_starboard)
"VA" = (
/obj/structure/cable/green{
d1 = 4;
d2 = 8;
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/machinery/holosign/surgery{
id = "tal_surg";
pixel_x = 8;
pixel_y = 22
},
/turf/simulated/floor/tiled/techmaint,
/area/talon_v2/central_hallway/star)
"VD" = (
/obj/structure/cable/green{
d1 = 1;
@@ -15316,11 +15350,8 @@
/turf/simulated/floor/wood,
/area/talon_v2/crew_quarters/eng_room)
"WB" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 9
/obj/machinery/sleeper{
dir = 4
},
/turf/simulated/floor/tiled/white,
/area/talon_v2/medical)
@@ -28025,12 +28056,12 @@ Sk
MG
RQ
rG
Fn
yx
NZ
Na
BU
RQ
tX
VA
lv
fW
PK
@@ -28168,7 +28199,7 @@ uk
RQ
Kp
yj
NZ
Ag
zZ
BX
RQ
@@ -28308,11 +28339,11 @@ Sk
rQ
JI
RQ
RQ
RQ
bX
yD
zw
RQ
RQ
dS
aw
RQ
tX
Lo
@@ -28451,9 +28482,9 @@ Sk
uv
RQ
Wj
yx
NZ
Ag
Fn
WB
Fn
Cq
RQ
HG
@@ -28593,9 +28624,9 @@ Sk
Wu
RQ
HX
yD
WB
bX
Fn
Fn
Fn
Cy
RQ
Ly
+96
View File
@@ -0,0 +1,96 @@
/datum/map
var/list/lateload_gb_north = list()
var/list/lateload_gb_south = list()
var/list/lateload_gb_east = list()
var/list/lateload_gb_west = list()
/datum/controller/subsystem/mapping/loadLateMaps()
if(using_map.name == "RascalsPass")
var/list/gbn_load = using_map.lateload_gb_north
var/list/gbs_load = using_map.lateload_gb_south
var/list/gbe_load = using_map.lateload_gb_east
var/list/gbw_load = using_map.lateload_gb_west
if(LAZYLEN(gbn_load)) //Just copied from gateway picking, this is so we can have a kind of OM map version of the same concept.
var/picklist = pick(gbn_load)
if(!picklist) //No lateload maps at all
return
if(!islist(picklist)) //So you can have a 'chain' of z-levels that make up one away mission
error("Randompick Z level [picklist] is not a list! Must be in a list!")
return
for(var/map in picklist)
if(islist(map))
// TRIPLE NEST. In this situation we pick one at random from the choices in the list.
//This allows a sort of a1,a2,a3,b1,b2,b3,c1,c2,c3 setup where it picks one 'a', one 'b', one 'c'
map = pick(map)
var/datum/map_template/MT = map_templates[map]
if(!istype(MT))
error("Randompick Z level \"[map]\" is not a valid map!")
else
MT.load_new_z(centered = FALSE)
if(LAZYLEN(gbs_load)) //Just copied from gateway picking, this is so we can have a kind of OM map version of the same concept.
var/picklist = pick(gbs_load)
if(!picklist) //No lateload maps at all
return
if(!islist(picklist)) //So you can have a 'chain' of z-levels that make up one away mission
error("Randompick Z level [picklist] is not a list! Must be in a list!")
return
for(var/map in picklist)
if(islist(map))
// TRIPLE NEST. In this situation we pick one at random from the choices in the list.
//This allows a sort of a1,a2,a3,b1,b2,b3,c1,c2,c3 setup where it picks one 'a', one 'b', one 'c'
map = pick(map)
var/datum/map_template/MT = map_templates[map]
if(!istype(MT))
error("Randompick Z level \"[map]\" is not a valid map!")
else
MT.load_new_z(centered = FALSE)
if(LAZYLEN(gbe_load)) //Just copied from gateway picking, this is so we can have a kind of OM map version of the same concept.
var/picklist = pick(gbe_load)
if(!picklist) //No lateload maps at all
return
if(!islist(picklist)) //So you can have a 'chain' of z-levels that make up one away mission
error("Randompick Z level [picklist] is not a list! Must be in a list!")
return
for(var/map in picklist)
if(islist(map))
// TRIPLE NEST. In this situation we pick one at random from the choices in the list.
//This allows a sort of a1,a2,a3,b1,b2,b3,c1,c2,c3 setup where it picks one 'a', one 'b', one 'c'
map = pick(map)
var/datum/map_template/MT = map_templates[map]
if(!istype(MT))
error("Randompick Z level \"[map]\" is not a valid map!")
else
MT.load_new_z(centered = FALSE)
if(LAZYLEN(gbw_load)) //Just copied from gateway picking, this is so we can have a kind of OM map version of the same concept.
var/picklist = pick(gbw_load)
if(!picklist) //No lateload maps at all
return
if(!islist(picklist)) //So you can have a 'chain' of z-levels that make up one away mission
error("Randompick Z level [picklist] is not a list! Must be in a list!")
return
for(var/map in picklist)
if(islist(map))
// TRIPLE NEST. In this situation we pick one at random from the choices in the list.
//This allows a sort of a1,a2,a3,b1,b2,b3,c1,c2,c3 setup where it picks one 'a', one 'b', one 'c'
map = pick(map)
var/datum/map_template/MT = map_templates[map]
if(!istype(MT))
error("Randompick Z level \"[map]\" is not a valid map!")
else
MT.load_new_z(centered = FALSE)
. = ..()
+3
View File
@@ -1103,6 +1103,7 @@
#include "code\game\objects\effects\spiders.dm"
#include "code\game\objects\effects\spiders_vr.dm"
#include "code\game\objects\effects\step_triggers.dm"
#include "code\game\objects\effects\wire_deleter.dm"
#include "code\game\objects\effects\zone_divider.dm"
#include "code\game\objects\effects\alien\aliens.dm"
#include "code\game\objects\effects\chem\chemsmoke.dm"
@@ -3988,6 +3989,7 @@
#include "code\modules\vore\resizing\grav_pull_vr.dm"
#include "code\modules\vore\resizing\holder_micro_vr.dm"
#include "code\modules\vore\resizing\resize_vr.dm"
#include "code\modules\vore\resizing\sizegun_slow_vr.dm"
#include "code\modules\vore\resizing\sizegun_vr.dm"
#include "code\modules\vore\smoleworld\smoleworld_vr.dm"
#include "code\modules\vore\weight\fitness_machines_vr.dm"
@@ -4131,4 +4133,5 @@
#include "maps\submaps\surface_submaps\wilderness\wilderness.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
#include "maps\~map_system\maps.dm"
#include "maps\~map_system\maps_vr.dm"
// END_INCLUDE