Merge branch 'master' into polaris-sync-2018-02-07

This commit is contained in:
Aronai Sieyes
2018-02-07 23:06:03 -05:00
committed by Arokha Sieyes
43 changed files with 43485 additions and 191 deletions
+17 -12
View File
@@ -59,22 +59,27 @@ SUBSYSTEM_DEF(mapping)
var/list/deffo_load = using_map.lateload_z_levels
var/list/maybe_load = using_map.lateload_single_pick
for(var/mapname in deffo_load)
var/datum/map_template/MT = map_templates[mapname]
if(!istype(MT))
error("Lateload Z level \"[mapname]\" is not a valid map!")
for(var/list/maplist in deffo_load)
if(!islist(maplist))
error("Lateload Z level [maplist] is not a list! Must be in a list!")
continue
MT.load_new_z(centered = FALSE)
CHECK_TICK
for(var/mapname in maplist)
var/datum/map_template/MT = map_templates[mapname]
if(!istype(MT))
error("Lateload Z level \"[mapname]\" is not a valid map!")
continue
MT.load_new_z(centered = FALSE)
CHECK_TICK
if(LAZYLEN(maybe_load))
var/picked = pick(maybe_load)
var/list/picklist
var/picklist = pick(maybe_load)
if(islist(picked)) //So you can have a 'chain' of z-levels that make up one away mission
picklist = picked
else
picklist = list(picked)
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)
var/datum/map_template/MT = map_templates[map]
+15 -6
View File
@@ -15,14 +15,24 @@ SUBSYSTEM_DEF(mobs)
var/list/currentrun = list()
var/log_extensively = FALSE
var/list/timelog = list()
var/list/busy_z_levels
var/slept_mobs = 0
/datum/controller/subsystem/mobs/stat_entry()
..("P: [global.mob_list.len]")
..("P: [global.mob_list.len] | S: [slept_mobs]")
/datum/controller/subsystem/mobs/fire(resumed = 0)
var/list/busy_z_levels = src.busy_z_levels
if (!resumed)
slept_mobs = 0
src.currentrun = mob_list.Copy()
if(log_extensively) timelog = list("-Start- [TICK_USAGE]")
busy_z_levels = list()
for(var/played_mob in player_list)
if(!played_mob || isobserver(played_mob))
continue
var/mob/pm = played_mob
busy_z_levels |= pm.z
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
@@ -37,11 +47,10 @@ SUBSYSTEM_DEF(mobs)
// Right now mob.Life() is unstable enough I think we need to use a try catch.
// Obviously we should try and get rid of this for performance reasons when we can.
try
var/time_before = TICK_USAGE
if(M.low_priority && !(M.z in busy_z_levels))
slept_mobs++
continue
M.Life(times_fired)
var/time_after = TICK_USAGE
var/time_diff = time_after - time_before
if(log_extensively && (time_diff > 0.01)) timelog += list("[time_diff]% - [M] ([M.x],[M.y],[M.z])" = M)
catch(var/exception/e)
log_runtime(e, M, "Caught by [name] subsystem")
+67
View File
@@ -0,0 +1,67 @@
///////////////////
// Generic skyfall turf
// Really only works well if the map doesn't have 'indoor' areas otherwise they can fall into one.
// TODO: Fix that.
/turf/unsimulated/floor/sky
name = "the sky"
desc = "It's the sky! Be careful!"
icon = 'icons/turf/floors.dmi'
icon_state = "sky_slow"
dir = SOUTH
initialized = FALSE
var/does_skyfall = TRUE
var/list/skyfall_levels
/turf/unsimulated/floor/sky/initialize()
. = ..()
if(does_skyfall && !LAZYLEN(skyfall_levels))
error("[x],[y],[z], [get_area(src)] doesn't have skyfall_levels defined! Can't skyfall!")
if(locate(/turf/simulated) in orange(src,1))
set_light(2, 2, color)
/turf/unsimulated/floor/sky/Entered(atom/movable/AM,atom/oldloc)
. = ..()
if(!does_skyfall)
return //We don't do that
if(isobserver(AM))
return //Don't ghostport, very annoying
if(AM.throwing)
return //Being thrown over, not fallen yet
var/mob/living/L
if(isliving(AM))
L = AM
if(L.is_floating)
return //Flyers/nograv can ignore it
do_fall(AM)
/turf/unsimulated/floor/sky/hitby(var/atom/movable/AM, var/speed)
. = ..()
if(!does_skyfall)
return //We don't do that
do_fall(AM)
/turf/unsimulated/floor/sky/proc/do_fall(atom/movable/AM)
//Bye
var/attempts = 100
var/turf/simulated/T
while(attempts && !T)
var/turf/simulated/candidate = locate(rand(5,world.maxx-5),rand(5,world.maxy-5),pick(skyfall_levels))
if(candidate.density)
attempts--
continue
T = candidate
break
if(!T)
return
AM.forceMove(T)
if(isliving(AM))
var/mob/living/L = AM
message_admins("\The [AM] fell out of the sky.")
L.fall_impact(T, 42, 90, FALSE, TRUE) //You will not be defibbed from this.
@@ -77,7 +77,7 @@
if(do_after(user, 30, trashman) && !patient && !trashman.buckled && length(contents) < max_item_count)
trashman.forceMove(src)
trashman.reset_view(src)
processing_objects.Add(src)
processing_objects |= src
user.visible_message("<span class='warning'>[hound.name]'s internal analyzer groans lightly as [trashman] slips inside.</span>", "<span class='notice'>Your internal analyzer groans lightly as [trashman] slips inside.</span>")
playsound(hound, 'sound/vore/gulp.ogg', 80, 1)
update_patient()
@@ -127,7 +127,7 @@
if(do_after(user, 30, trashman) && !patient && !trashman.buckled && length(contents) < max_item_count)
trashman.forceMove(src)
trashman.reset_view(src)
processing_objects.Add(src)
processing_objects |= src
user.visible_message("<span class='warning'>[hound.name]'s garbage processor groans lightly as [trashman] slips inside.</span>", "<span class='notice'>Your garbage compactor groans lightly as [trashman] slips inside.</span>")
playsound(hound, 'sound/vore/gulp.ogg', 80, 1)
update_patient()
@@ -154,7 +154,7 @@
H.forceMove(src)
H.reset_view(src)
update_patient()
processing_objects.Add(src)
processing_objects |= src
user.visible_message("<span class='warning'>[hound.name]'s medical pod lights up as [H.name] slips inside into their [src.name].</span>", "<span class='notice'>Your medical pod lights up as [H] slips into your [src]. Life support functions engaged.</span>")
message_admins("[key_name(hound)] has eaten [key_name(patient)] as a dogborg. ([hound ? "<a href='?_src_=holder;adminplayerobservecoodjump=1;X=[hound.x];Y=[hound.y];Z=[hound.z]'>JMP</a>" : "null"])")
playsound(hound, 'sound/vore/gulp.ogg', 80, 1)
@@ -317,7 +317,7 @@
else
cleaning = 1
drain(startdrain)
processing_objects.Add(src)
processing_objects |= src
update_patient()
sleeperUI(usr)
if(patient)
@@ -37,6 +37,7 @@
cooperative = TRUE
firing_lines = TRUE
investigates = TRUE
run_at_them = FALSE //VOREStation Edit
speak_chance = 1
speak = list(
@@ -86,7 +87,7 @@
/mob/living/simple_animal/hostile/hivebot/range/ion
name = "engineering hivebot"
desc = "A robot. It has a tool which emits focused electromagnetic pulses, which are deadly to other synthetic adverseries."
projectiletype = /obj/item/projectile/ion
projectiletype = /obj/item/projectile/ion/small //VOREStation Edit
projectilesound = 'sound/weapons/Laser.ogg'
icon_living = "engi"
ranged = TRUE
@@ -139,7 +139,7 @@
loot_list = list(/obj/item/weapon/gun/projectile/automatic/c20r = 100)
/mob/living/simple_animal/hostile/syndicate/ranged/space
name = "syndicate sommando"
name = "space mercenary" //VOREStation Edit
icon_state = "syndicaterangedpsace"
icon_living = "syndicaterangedpsace"
@@ -154,6 +154,7 @@
min_n2 = 0
max_n2 = 0
minbodytemp = 0
maxbodytemp = 900 //VOREStation edit - We'll pretend they have good suits
corpse = /obj/effect/landmark/mobcorpse/syndicatecommando
@@ -343,9 +343,22 @@
var/moving_to = 0 // otherwise it always picks 4, fuck if I know. Did I mention fuck BYOND
moving_to = pick(cardinal)
dir = moving_to //How about we turn them the direction they are moving, yay.
Move(get_step(src,moving_to))
var/turf/T = get_step(src,moving_to)
if(avoid_turf(T))
return
Move(T)
lifes_since_move = 0
// Checks to see if mob doesn't like this kind of turf
/mob/living/simple_animal/proc/avoid_turf(var/turf/turf)
if(!turf)
return TRUE //Avoid the nothing, yes
if(istype(turf,/turf/simulated/sky))
return TRUE //Mobs aren't that stupid, probably
return FALSE //Override it on stuff to adjust
// Handles random chatter, called from Life() when stance = STANCE_IDLE
/mob/living/simple_animal/proc/handle_idle_speaking()
if(rand(0,200) < speak_chance)
@@ -198,3 +198,12 @@
update_icon()
stop_automated_movement = 0
..()
// Checks to see if mob doesn't like this kind of turf
/mob/living/simple_animal/avoid_turf(var/turf/turf)
//So we only check if the parent didn't find anything terrible
if((. = ..(turf)))
return .
if(istype(turf,/turf/unsimulated/floor/sky))
return TRUE //Mobs aren't that stupid, probably
@@ -0,0 +1,25 @@
/mob/living/simple_animal/hostile/jelly
name = "jelly blob"
desc = "Some sort of undulating blob of slime!"
icon = 'icons/mob/vore.dmi'
icon_dead = "jelly_dead"
icon_living = "jelly"
icon_state = "jelly"
faction = "virgo2"
maxHealth = 50
health = 50
melee_damage_lower = 5
melee_damage_upper = 15
speak_chance = 2
emote_hear = list("squishes","spluts","splorts","sqrshes","makes slime noises")
emote_see = list("undulates quietly")
// Activate Noms!
/mob/living/simple_animal/hostile/jelly
vore_active = 1
vore_pounce_chance = 0
vore_icons = SA_ICON_LIVING
swallowTime = 2 SECONDS // Hungry little bastards.
@@ -0,0 +1,211 @@
/mob/living/simple_animal/shadekin //Spawn this one only if you're looking for a bad time. Not friendly.
name = "shadekin"
desc = "Some sort of fluffer. Big ears, long tail! "
icon = 'icons/mob/vore_shadekin.dmi'
icon_state = "dark"
icon_living = "dark"
icon_dead = "dead"
faction = "shadekin"
maxHealth = 200
health = 200
move_to_delay = 3
investigates = TRUE
reacts = TRUE
run_at_them = FALSE
speak_chance = 2
cooperative = FALSE
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 = 900
speak = list("Mar.", "Mar?", "Mar!")
emote_hear = list("chrrrrrs","wurbles", "wrrrrbles")
emote_see = list("tailtwitches","earflicks")
say_maybe_target = list("...mar?")
say_got_target = list("MAR!!!")
melee_damage_lower = 10
melee_damage_upper = 20
response_help = "pets the"
response_disarm = "bops the"
response_harm = "hits the"
attacktext = "mauled"
friendly = list("boops", "pawbs")
reactions = list("Mar?" = "Marrr.", "Mar!" = "Mar???", "Mar." = "Marrr.")
old_x = -16
old_y = 0
pixel_x = -16
pixel_y = 0
var/eye_state = "e_red"
var/eye_desc
vore_active = TRUE
vore_pounce_chance = 25
vore_icons = SA_ICON_LIVING
swallowTime = 2 SECONDS
vore_escape_chance = 25
//None, they stay as their defaults.
vore_digest_chance = 0
vore_absorb_chance = 0
/mob/living/simple_animal/shadekin/initialize()
. = ..()
icon_living = icon_state
if(eye_state)
overlays += image(icon,null,eye_state)
if(eye_desc)
desc += "This one has [eye_desc]!"
/mob/living/simple_animal/shadekin/death(gibbed, deathmessage = "phases out!")
spawn(20)
qdel(src) //Back from whence you came!
. = ..(FALSE, deathmessage)
/mob/living/simple_animal/shadekin/Found(var/atom/A)
if(specific_targets && isliving(A)) //Healing!
var/mob/living/L = A
var/health_percent = (L.health/L.maxHealth)*100
if(health_percent <= 50)
return A
. = ..()
/mob/living/simple_animal/shadekin/Life()
if((. = ..()))
//Drawing energy from bluespace?
if(nutrition != initial(nutrition))
nutrition += nutrition > initial(nutrition) ? -1 : 1
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/red
eye_state = "e_red"
hostile = TRUE
retaliate = TRUE
stop_when_pulled = FALSE
destroy_surroundings = TRUE
eye_desc = "red eyes"
vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, \
slippery gullet of the creature. It's warm, and the air is thick. You can hear \
its body squelch and shift around you as you settle into its stomach! Thick digestive \
enzymes cling to you within that dark space, tingling and stinging immediately! The weight of \
the doughy walls press in around you instantly, churning you up as you begin to digest!"
/mob/living/simple_animal/shadekin/red/white
icon_state = "white"
/mob/living/simple_animal/shadekin/red/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/red/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/blue
eye_state = "e_blue"
health = 100
maxHealth = 100
hostile = TRUE //Not actually, they eat injured people to heal them. See found()
retaliate = FALSE
stop_when_pulled = TRUE
specific_targets = TRUE //For finding injured people
destroy_surroundings = FALSE
vore_default_mode = DM_HEAL
vore_escape_chance = 75
vore_bump_chance = 20
vore_standing_too = 1
vore_pounce_chance = 80
swallowTime = 4 SECONDS //A little longer to compensate for the above
vore_ignores_undigestable = FALSE
melee_damage_lower = 0
melee_damage_upper = 0
attacktext = "shoved"
eye_desc = "blue eyes"
vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, \
slippery gullet of the creature. It's warm, and the air is thick. You can hear its body \
squelch and shift around you as you settle into its stomach! It's oddly calm, and very dark. \
The doughy flesh rolls across your form in gentle waves. The aches and pains across your form slowly begin to \
diminish, your body is healing much faster than normal! Youre also soon soaked in harmless slime."
/mob/living/simple_animal/shadekin/blue/white
icon_state = "white"
/mob/living/simple_animal/shadekin/blue/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/blue/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/purple
eye_state = "e_purple"
health = 150
maxHealth = 150
hostile = FALSE
retaliate = TRUE
stop_when_pulled = FALSE
destroy_surroundings = TRUE
vore_default_mode = DM_HOLD
vore_digest_chance = 25
vore_absorb_chance = 25
eye_desc = "purple eyes"
vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, slippery gullet of the creature. \
It's warm, and the air is thick. You can hear its body squelch and shift around you as you settle into its stomach! \
Its relatively calm inside the dark organ. Wet and almost molten for how gooey your surroundings feel. \
You can feel the doughy walls cling to you posessively... Its almost like you could sink into them. \
There is also an ominous gurgling from somewhere nearby..."
/mob/living/simple_animal/shadekin/purple/white
icon_state = "white"
/mob/living/simple_animal/shadekin/purple/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/purple/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
/mob/living/simple_animal/shadekin/yellow
eye_state = "e_yellow"
health = 150
maxHealth = 150
hostile = FALSE
retaliate = TRUE
stop_when_pulled = FALSE
destroy_surroundings = TRUE
vore_default_mode = DM_DRAIN
vore_digest_chance = 5
vore_ignores_undigestable = FALSE
eye_desc = "yellow eyes"
vore_stomach_flavor = "You slip passed pointy triangle teeth and down the slick, slippery gullet \
of the creature. It's warm, and the air is thick. You can hear its body squelch and shift around you \
as you settle into its stomach! The doughy walls within cling to you heavily, churning down on you, wearing \
you out!! There doesnt appear to be any actual danger here, harmless slime clings to you, but its getting \
harder and harder to move as those walls press in on you insistently!"
/mob/living/simple_animal/shadekin/yellow/white
icon_state = "white"
/mob/living/simple_animal/shadekin/yellow/dark
icon_state = "dark"
/mob/living/simple_animal/shadekin/yellow/brown
icon_state = "brown"
/////////////////////////////////////////////////////////////////
//Fluffy specific fluffer
/mob/living/simple_animal/shadekin/blue/rivyr
name = "Rivyr"
desc = "She appears to be a fluffer of some sort. Deep blue eyes and curious attitude."
icon_state = "rivyr"
vore_stomach_flavor = "Blue flesh gleams in the fading light as you slip down the little mars gullet! \
Gooey flesh and heat surrounds your form as youre tucked away into the darkness of her stomach! Thick slimes cling \
to you, but they seem to be harmless. The organ gently churns around you, clinging to your shape and forcing \
you to curl up a bit. You can feel her rub at you some through the layers of flesh and fluff, while aches \
and pains begin to fade away across your body."
+3
View File
@@ -219,3 +219,6 @@
var/seedarkness = 1 //Determines mob's ability to see shadows. 1 = Normal vision, 0 = darkvision
var/get_rig_stats = 0 //Moved from computer.dm
var/low_priority = FALSE //Skip processing life() if there's just no players on this Z-level
+3 -3
View File
@@ -5,7 +5,7 @@
plane_masters[VIS_CH_BACKUP] = new /obj/screen/plane_master{plane = PLANE_CH_BACKUP} //Backup implant status
plane_masters[VIS_CH_VANTAG] = new /obj/screen/plane_master{plane = PLANE_CH_VANTAG} //Vore Antags
plane_masters[VIS_AUGMENTED] = new /obj/screen/plane_master/augmented(my_mob) //Augmented reality
plane_masters[VIS_AUGMENTED] = new /obj/screen/plane_master/augmented(null,my_mob) //Augmented reality
/////////////////
//AR planemaster does some special image handling
@@ -14,8 +14,8 @@
var/state = FALSE //Saves cost with the lists
var/mob/my_mob
/obj/screen/plane_master/augmented/New(var/mob/M)
..()
/obj/screen/plane_master/augmented/New(var/newloc, var/mob/M)
..(newloc)
my_mob = M
logged_in_event.register(my_mob,src,/obj/screen/plane_master/augmented/proc/apply)
+1 -4
View File
@@ -365,7 +365,7 @@
items_preserved |= item
else
internal_contents -= item
owner.nutrition += (digested)
owner.nutrition += (5 * digested)
if(isrobot(owner))
var/mob/living/silicon/robot/R = owner
R.cell.charge += (50 * digested)
@@ -489,9 +489,6 @@
return
internal_contents -= content
target.internal_contents += content
if(content in items_preserved)
items_preserved -= content
target.items_preserved += content
if(isliving(content))
var/mob/living/M = content
if(target.inside_flavor)
+1
View File
@@ -605,6 +605,7 @@
var/datum/belly/selected = vore_organs[belly]
I.forceMove(src)
selected.internal_contents |= I
updateVRPanel()
if(istype(I,/obj/item/device/flashlight/flare) || istype(I,/obj/item/weapon/flame/match) || istype(I,/obj/item/weapon/storage/box/matches))
to_chat(src, "<span class='notice'>You can taste the flavor of spicy cardboard.</span>")
else if(istype(I,/obj/item/device/flashlight/glowstick))
Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

+154 -52
View File
@@ -1,7 +1,99 @@
// This causes tether submap maps to get 'checked' and compiled, when undergoing a unit test.
// This is so Travis can validate PoIs, and ensure future changes don't break PoIs, as PoIs are loaded at runtime and the compiler can't catch errors.
//Away missions defined here for testing
//////////////////////////////////////////////////////////////////////////////
/// Static Load
/datum/map_template/tether_lateload/tether_misc
name = "Tether - Misc"
desc = "Misc areas, like some transit areas, holodecks, merc area."
mappath = 'tether_misc.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/ships
/datum/map_z_level/tether_lateload/misc
name = "Misc"
flags = MAP_LEVEL_ADMIN|MAP_LEVEL_SEALED
/datum/map_template/tether_lateload/tether_ships
name = "Tether - Ships"
desc = "Ship transit map and whatnot."
mappath = 'tether_ships.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/ships
/datum/map_z_level/tether_lateload/ships
name = "Ships"
flags = MAP_LEVEL_ADMIN|MAP_LEVEL_SEALED
//////////////////////////////////////////////////////////////////////////////
/// Away Missions
#if AWAY_MISSION_TEST
#include "beach/beach.dmm"
#include "beach/cave.dmm"
#include "alienship/alienship.dmm"
//#include "aerostat/aerostat.dmm"
//#include "aerostat/surface.dmm"
#endif
#include "beach/_beach.dm"
/datum/map_template/tether_lateload/away_beach
name = "Desert Planet - Z1 Beach"
desc = "The beach away mission."
mappath = 'beach/beach.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_beach
/datum/map_z_level/tether_lateload/away_beach
name = "Away Mission - Desert Beach"
/datum/map_template/tether_lateload/away_beach_cave
name = "Desert Planet - Z2 Cave"
desc = "The beach away mission's cave."
mappath = 'beach/cave.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_beach_cave
/datum/map_z_level/tether_lateload/away_beach_cave
name = "Away Mission - Desert Cave"
/obj/effect/step_trigger/zlevel_fall/beach
var/static/target_z
#include "alienship/_alienship.dm"
/datum/map_template/tether_lateload/away_alienship
name = "Alien Ship - Z1 Ship"
desc = "The alien ship away mission."
mappath = 'alienship/alienship.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_alienship
/datum/map_z_level/tether_lateload/away_alienship
name = "Away Mission - Alien Ship"
#include "aerostat/_aerostat.dm"
/datum/map_template/tether_lateload/away_aerostat
name = "Remmi Aerostat - Z1 Aerostat"
desc = "The Virgo 2 Aerostat away mission."
mappath = 'aerostat/aerostat.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_aerostat
/datum/map_z_level/tether_lateload/away_aerostat
name = "Away Mission - Aerostat"
/datum/map_template/tether_lateload/away_aerostat_surface
name = "Remmi Aerostat - Z2 Surface"
desc = "The surface from the Virgo 2 Aerostat."
mappath = 'aerostat/surface.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_aerostat_surface
/datum/map_z_level/tether_lateload/away_aerostat_surface
name = "Away Mission - Aerostat Surface"
//////////////////////////////////////////////////////////////////////////////////////
// Code Shenanigans for Tether lateload maps
/datum/map_template/tether_lateload
allow_duplicates = FALSE
var/associated_map_datum
@@ -13,7 +105,6 @@
new associated_map_datum(using_map, z)
/datum/map_z_level/tether_lateload
z = 0
flags = MAP_LEVEL_SEALED
@@ -66,66 +157,77 @@
var/mob/living/L = A
L.fall_impact(T, 42, 90, FALSE, TRUE) //You will not be defibbed from this.
/obj/effect/step_trigger/zlevel_fall/beach
var/static/target_z
/////////////////////////////
/obj/tether_away_spawner
name = "RENAME ME, JERK"
desc = "Spawns the mobs!"
icon = 'icons/mob/screen1.dmi'
icon_state = "x"
invisibility = 101
mouse_opacity = 0
density = 0
anchored = 1
//////////////////////////////////////////////////////////////////////////////
/// Static Load
/datum/map_template/tether_lateload/tether_misc
name = "Tether - Misc"
desc = "Misc areas, like some transit areas, holodecks, merc area."
mappath = 'tether_misc.dmm'
var/list/mobs_to_pick_from
var/mob/living/simple_animal/my_mob
var/depleted = FALSE
associated_map_datum = /datum/map_z_level/tether_lateload/ships
//When the below chance fails, the spawner is marked as depleted and stops spawning
var/prob_spawn = 100 //Chance of spawning a mob whenever they don't have one
var/prob_fall = 5 //Above decreases by this much each time one spawns
/datum/map_z_level/tether_lateload/misc
name = "Misc"
flags = MAP_LEVEL_ADMIN|MAP_LEVEL_SEALED
var/faction //To prevent infighting if it spawns various mobs, set a faction
var/atmos_comp //TRUE will set all their survivability to be within 20% of the current air
var/guard //# will set the mobs to remain nearby their spawn point within this dist
/datum/map_template/tether_lateload/tether_ships
name = "Tether - Ships"
desc = "Ship transit map and whatnot."
mappath = 'tether_ships.dmm'
/obj/tether_away_spawner/initialize()
. = ..()
associated_map_datum = /datum/map_z_level/tether_lateload/ships
if(!LAZYLEN(mobs_to_pick_from))
error("Mob spawner at [x],[y],[z] ([get_area(src)]) had no mobs_to_pick_from set on it!")
initialized = TRUE
return INITIALIZE_HINT_QDEL
processing_objects |= src
/datum/map_z_level/tether_lateload/ships
name = "Ships"
flags = MAP_LEVEL_ADMIN|MAP_LEVEL_SEALED
/obj/tether_away_spawner/process()
if(my_mob && my_mob.stat != DEAD)
return //No need
//////////////////////////////////////////////////////////////////////////////
/// Away Missions
#if AWAY_MISSION_TEST
#include "beach/beach.dmm"
#include "beach/cave.dmm"
#include "alienship/alienship.dmm"
#endif
if(LAZYLEN(human_mobs(world.view)))
return //I'll wait.
#include "beach/beach.dm"
/datum/map_template/tether_lateload/away_beach
name = "Desert Planet - Z1 Beach"
desc = "The beach away mission."
mappath = 'beach/beach.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_beach
if(prob(prob_spawn))
prob_spawn -= prob_fall
var/picked_type = pick(mobs_to_pick_from)
my_mob = new picked_type(get_turf(src))
my_mob.low_priority = TRUE
/datum/map_z_level/tether_lateload/away_beach
name = "Away Mission - Desert Beach"
if(faction)
my_mob.faction = faction
/datum/map_template/tether_lateload/away_beach_cave
name = "Desert Planet - Z2 Cave"
desc = "The beach away mission's cave."
mappath = 'beach/cave.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_beach_cave
if(atmos_comp)
var/turf/T = get_turf(src)
var/datum/gas_mixture/env = T.return_air()
if(env)
my_mob.minbodytemp = env.temperature * 0.8
my_mob.maxbodytemp = env.temperature * 1.2
/datum/map_z_level/tether_lateload/away_beach_cave
name = "Away Mission - Desert Cave"
var/list/gaslist = env.gas
my_mob.min_oxy = gaslist["oxygen"] * 0.8
my_mob.min_tox = gaslist["phoron"] * 0.8
my_mob.min_n2 = gaslist["nitrogen"] * 0.8
my_mob.min_co2 = gaslist["carbon_dioxide"] * 0.8
my_mob.max_oxy = gaslist["oxygen"] * 1.2
my_mob.max_tox = gaslist["phoron"] * 1.2
my_mob.max_n2 = gaslist["nitrogen"] * 1.2
my_mob.max_co2 = gaslist["carbon_dioxide"] * 1.2
#include "alienship/alienship.dm"
/datum/map_template/tether_lateload/away_alienship
name = "Alien Ship - Z1 Ship"
desc = "The alien ship away mission."
mappath = 'alienship/alienship.dmm'
associated_map_datum = /datum/map_z_level/tether_lateload/away_alienship
if(guard)
my_mob.returns_home = TRUE
my_mob.wander_distance = guard
/datum/map_z_level/tether_lateload/away_alienship
name = "Away Mission - Alien Ship"
return
else
processing_objects -= src
depleted = TRUE
return
+203
View File
@@ -0,0 +1,203 @@
#include "submaps/virgo2.dm"
// -- Datums -- //
/datum/shuttle_destination/excursion/virgo2orbit
name = "Virgo 2 Orbit"
my_area = /area/shuttle/excursion/space
preferred_interim_area = /area/shuttle/excursion/space_moving
skip_me = TRUE
routes_to_make = list(
/datum/shuttle_destination/excursion/bluespace = 30 SECONDS,
/datum/shuttle_destination/excursion/virgo2orbit = 30 SECONDS
)
/datum/shuttle_destination/excursion/aerostat
name = "Remmi Aerostat"
my_area = /area/shuttle/excursion/away_aerostat
preferred_interim_area = /area/shuttle/excursion/space_moving
skip_me = TRUE
routes_to_make = list(
/datum/shuttle_destination/excursion/virgo2orbit = 30 SECONDS
)
/datum/shuttle/ferry/aerostat
name = "Aerostat Ferry"
warmup_time = 10 //want some warmup time so people can cancel.
area_station = /area/shuttle/aerostat/docked
area_offsite = /area/shuttle/aerostat/landed
/datum/random_map/noise/ore/virgo2
descriptor = "virgo 2 ore distribution map"
deep_val = 0.2
rare_val = 0.1
/datum/random_map/noise/ore/virgo2/check_map_sanity()
return 1 //Totally random, but probably beneficial.
// -- Objs -- //
/obj/machinery/computer/shuttle_control/aerostat_shuttle
name = "aerostat ferry control console"
shuttle_tag = "Aerostat Ferry"
/obj/shuttle_connector/aerostat
name = "shuttle connector - aerostat"
shuttle_name = "Excursion Shuttle"
destinations = list(/datum/shuttle_destination/excursion/virgo2orbit, /datum/shuttle_destination/excursion/aerostat)
/obj/away_mission_init/aerostat/initialize()
seed_submaps(list(z), 50, /area/tether_away/aerostat/surface/unexplored, /datum/map_template/virgo2)
new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, z, world.maxx, world.maxy)
new /datum/random_map/noise/ore/virgo2(null, 1, 1, z, 64, 64)
initialized = TRUE
return INITIALIZE_HINT_QDEL
/obj/tether_away_spawner/aerostat_inside
name = "Aerostat Indoors Spawner"
faction = "aerostat_inside"
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 10
guard = 20
mobs_to_pick_from = list(
/mob/living/simple_animal/hostile/hivebot/range,
/mob/living/simple_animal/hostile/hivebot/range/ion,
/mob/living/simple_animal/hostile/hivebot/range/laser
)
/obj/tether_away_spawner/aerostat_surface
name = "Aerostat Surface Spawner"
faction = "aerostat_surface"
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 10
guard = 20
mobs_to_pick_from = list(
/mob/living/simple_animal/hostile/jelly,
/mob/living/simple_animal/hostile/viscerator
)
/obj/structure/old_roboprinter
name = "old drone fabricator"
desc = "Built like a tank, still working after so many years."
icon = 'icons/obj/machines/drone_fab.dmi'
icon_state = "drone_fab_idle"
anchored = TRUE
density = TRUE
/obj/structure/metal_edge
name = "metal underside"
desc = "A metal wall that extends downwards."
icon = 'icons/turf/cliff.dmi'
icon_state = "metal"
anchored = TRUE
density = FALSE
// -- Turfs -- //
//Atmosphere properties
#define VIRGO2_ONE_ATMOSPHERE 312.1 //kPa
#define VIRGO2_AVG_TEMP 612 //kelvin
#define VIRGO2_PER_N2 0.10 //percent
#define VIRGO2_PER_O2 0.03
#define VIRGO2_PER_N2O 0.00 //Currently no capacity to 'start' a turf with this. See turf.dm
#define VIRGO2_PER_CO2 0.87
#define VIRGO2_PER_PHORON 0.00
//Math only beyond this point
#define VIRGO2_MOL_PER_TURF (VIRGO2_ONE_ATMOSPHERE*CELL_VOLUME/(VIRGO2_AVG_TEMP*R_IDEAL_GAS_EQUATION))
#define VIRGO2_MOL_N2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_N2)
#define VIRGO2_MOL_O2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_O2)
#define VIRGO2_MOL_N2O (VIRGO2_MOL_PER_TURF * VIRGO2_PER_N2O)
#define VIRGO2_MOL_CO2 (VIRGO2_MOL_PER_TURF * VIRGO2_PER_CO2)
#define VIRGO2_MOL_PHORON (VIRGO2_MOL_PER_TURF * VIRGO2_PER_PHORON)
//Turfmakers
#define VIRGO2_SET_ATMOS nitrogen=VIRGO2_MOL_N2;oxygen=VIRGO2_MOL_O2;carbon_dioxide=VIRGO2_MOL_CO2;phoron=VIRGO2_MOL_PHORON;temperature=VIRGO2_AVG_TEMP
#define VIRGO2_TURF_CREATE(x) x/virgo2/nitrogen=VIRGO2_MOL_N2;x/virgo2/oxygen=VIRGO2_MOL_O2;x/virgo2/carbon_dioxide=VIRGO2_MOL_CO2;x/virgo2/phoron=VIRGO2_MOL_PHORON;x/virgo2/temperature=VIRGO2_AVG_TEMP;x/virgo2/color="#eacd7c"
/turf/unsimulated/floor/sky/virgo2_sky
name = "virgo 2 atmosphere"
desc = "Be careful where you step!"
color = "#eacd7c"
VIRGO2_SET_ATMOS
/turf/unsimulated/floor/sky/virgo2_sky/initialize()
skyfall_levels = list(z+1)
. = ..()
/turf/simulated/shuttle/wall/voidcraft/green/virgo2
VIRGO2_SET_ATMOS
color = "#eacd7c"
/turf/simulated/shuttle/wall/voidcraft/green/virgo2/nocol
color = null
VIRGO2_TURF_CREATE(/turf/unsimulated/wall/planetary)
VIRGO2_TURF_CREATE(/turf/simulated/wall)
VIRGO2_TURF_CREATE(/turf/simulated/floor/plating)
VIRGO2_TURF_CREATE(/turf/simulated/floor/bluegrid)
VIRGO2_TURF_CREATE(/turf/simulated/floor/tiled/techfloor)
VIRGO2_TURF_CREATE(/turf/simulated/mineral)
/turf/simulated/mineral/virgo2/make_ore()
if(mineral)
return
var/mineral_name = pickweight(list("uranium" = 5, "platinum" = 10, "hematite" = 5, "carbon" = 5, "diamond" = 10, "gold" = 20, "silver" = 20, "phoron" = 5))
if(mineral_name && (mineral_name in ore_data))
mineral = ore_data[mineral_name]
UpdateMineral()
update_icon()
VIRGO2_TURF_CREATE(/turf/simulated/mineral/ignore_mapgen)
VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor)
VIRGO2_TURF_CREATE(/turf/simulated/mineral/floor/ignore_mapgen)
// -- Areas -- //
/area/shuttle/excursion/away_aerostat
name = "\improper Excursion Shuttle - Aerostat"
// The aerostat shuttle
/area/shuttle/aerostat/docked
name = "\improper Aerostat Shuttle - Dock"
base_turf = /turf/unsimulated/floor/sky/virgo2_sky
/area/shuttle/aerostat/landed
name = "\improper Aerostat Shuttle - Surface"
base_turf = /turf/simulated/floor/plating/virgo2
//The aerostat itself
/area/tether_away/aerostat
name = "\improper Away Mission - Aerostat Outside"
icon_state = "away"
base_turf = /turf/unsimulated/floor/sky/virgo2_sky
requires_power = FALSE
dynamic_lighting = FALSE
/area/tether_away/aerostat/inside
name = "\improper Away Mission - Aerostat Inside"
icon_state = "crew_quarters"
base_turf = /turf/simulated/floor/plating/virgo2
dynamic_lighting = TRUE
/area/tether_away/aerostat/surface
flags = RAD_SHIELDED
ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
base_turf = /turf/simulated/mineral/floor/ignore_mapgen/virgo2
/area/tether_away/aerostat/surface/explored
name = "Away Mission - Aerostat Surface (E)"
icon_state = "explored"
/area/tether_away/aerostat/surface/unexplored
name = "Away Mission - Aerostat Surface (UE)"
icon_state = "unexplored"
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,728 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/turf/template_noop,
/area/template_noop)
"ab" = (
/turf/template_noop,
/area/submap/virgo2/BoomBase)
"ac" = (
/obj/effect/decal/remains/human,
/turf/template_noop,
/area/submap/virgo2/BoomBase)
"ad" = (
/obj/item/weapon/material/shard,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/BoomBase)
"ae" = (
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"af" = (
/obj/structure/girder,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"ag" = (
/obj/structure/girder,
/obj/item/stack/rods,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"ah" = (
/turf/simulated/wall/virgo2,
/area/submap/virgo2/BoomBase)
"ai" = (
/obj/structure/closet/crate/secure/phoron,
/obj/fiftyspawner/phoron,
/turf/simulated/floor/plating,
/area/submap/virgo2/BoomBase)
"aj" = (
/obj/structure/closet/crate/secure/phoron,
/obj/fiftyspawner/phoron,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"ak" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/ash,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"al" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"am" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spider,
/obj/item/weapon/material/shard,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"an" = (
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"ao" = (
/mob/living/simple_animal/hostile/jelly,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"ap" = (
/obj/machinery/portable_atmospherics/canister/empty/phoron,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"aq" = (
/obj/machinery/portable_atmospherics/canister/empty/phoron,
/obj/item/weapon/material/shard,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"ar" = (
/obj/effect/decal/remains/human,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"as" = (
/obj/item/weapon/material/shard,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"at" = (
/obj/effect/spider/stickyweb,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"au" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"av" = (
/obj/effect/decal/cleanable/ash,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"aw" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/spider/stickyweb,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"ax" = (
/obj/effect/decal/cleanable/dirt,
/mob/living/simple_animal/hostile/jelly,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"ay" = (
/obj/structure/table,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"az" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/standard,
/obj/item/weapon/tank/phoron,
/obj/item/weapon/fuel_assembly/phoron,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"aA" = (
/obj/effect/decal/remains/human,
/obj/effect/decal/cleanable/ash,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"aB" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/BoomBase)
"aC" = (
/obj/item/weapon/material/shard,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"aD" = (
/obj/effect/decal/cleanable/ash,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/BoomBase)
"aE" = (
/obj/item/device/transfer_valve,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/BoomBase)
"aF" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/ash,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"aG" = (
/obj/effect/decal/remains/human,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/BoomBase)
"aH" = (
/obj/effect/decal/cleanable/dirt,
/obj/tether_away_spawner/aerostat_surface,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"aI" = (
/obj/tether_away_spawner/aerostat_surface,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/BoomBase)
"aT" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/BoomBase)
"aU" = (
/obj/effect/decal/cleanable/ash,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/BoomBase)
"aV" = (
/obj/effect/spider/stickyweb,
/obj/item/weapon/material/shard,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/BoomBase)
"aY" = (
/obj/effect/spider/stickyweb,
/obj/effect/decal/cleanable/ash,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"aZ" = (
/obj/effect/decal/remains/human,
/obj/effect/decal/cleanable/ash,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/BoomBase)
"ba" = (
/obj/item/stack/rods,
/turf/simulated/wall/virgo2,
/area/submap/virgo2/BoomBase)
(1,1,1) = {"
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
"}
(2,1,1) = {"
aa
ab
ab
ab
ab
ab
ab
aB
aB
aB
aB
ab
ab
ab
ab
aB
aB
aB
ab
aa
"}
(3,1,1) = {"
aa
ac
ab
ab
ab
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
ab
aa
"}
(4,1,1) = {"
aa
ab
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
ab
aa
"}
(5,1,1) = {"
aa
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
av
aB
aB
aB
aB
aB
aB
aa
"}
(6,1,1) = {"
aa
aB
aB
ba
ah
ah
ah
ah
ah
ah
ah
ah
ah
ah
af
aB
aB
aB
aB
aa
"}
(7,1,1) = {"
aa
aB
ah
ah
aF
au
aw
al
ax
ay
az
an
ae
aD
ae
aB
aB
aB
aB
aa
"}
(8,1,1) = {"
aa
aB
ah
ai
au
au
au
al
al
al
aA
aC
an
an
ag
ae
af
ae
aB
aa
"}
(9,1,1) = {"
aa
aB
ah
aj
au
aH
au
au
aT
aT
aB
aB
aB
aB
aB
aB
ae
af
aB
aa
"}
(10,1,1) = {"
aa
aB
ah
au
al
al
au
af
aT
an
aB
aB
aB
aB
aB
aB
aB
aB
aB
aa
"}
(11,1,1) = {"
aa
aB
ah
ak
al
au
aT
au
aT
aB
aB
aB
aB
aB
aB
aB
ah
aB
aB
aa
"}
(12,1,1) = {"
aa
aB
ah
al
au
af
aT
aT
aB
aB
aB
aB
aB
aB
aI
aB
ae
ah
aB
aa
"}
(13,1,1) = {"
aa
aB
ah
am
au
aT
aT
aB
aB
aB
aB
aB
aB
aB
aB
aB
ae
ah
aB
aa
"}
(14,1,1) = {"
aa
aB
ah
an
an
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
ae
ae
aB
aa
"}
(15,1,1) = {"
aa
aB
ah
ao
ar
aB
aB
aB
aU
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aa
"}
(16,1,1) = {"
aa
aB
ah
ap
an
aB
aB
aB
aB
aB
aB
aE
aB
aB
aB
aB
aB
aB
aB
aa
"}
(17,1,1) = {"
aa
aB
ah
aq
an
aB
aB
aB
aB
aB
aB
ad
aB
aB
aB
aB
aB
aB
aB
aa
"}
(18,1,1) = {"
aa
aB
ah
as
ae
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aa
"}
(19,1,1) = {"
aa
aB
ah
at
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
ae
ae
aB
aa
"}
(20,1,1) = {"
aa
aB
ah
ag
aB
aB
aB
aI
aB
aB
aB
aB
aB
aB
aB
ae
ae
ah
aB
aa
"}
(21,1,1) = {"
aa
aB
ah
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
aB
ae
aY
ah
aB
aa
"}
(22,1,1) = {"
aa
aB
af
aB
aB
aB
aB
ah
ah
ah
ah
ah
aB
aB
ae
at
aZ
ba
aB
aa
"}
(23,1,1) = {"
aa
aB
ag
aB
aB
aB
aB
ae
af
af
af
af
aB
ae
aV
ae
ah
ah
aB
aa
"}
(24,1,1) = {"
aa
aG
aB
aB
aB
aB
aB
aB
aB
aB
af
ae
aB
aB
aB
aB
aB
aB
aG
aa
"}
(25,1,1) = {"
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
aa
"}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,244 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/template_noop,
/area/submap/virgo2/GovPatrol)
"c" = (
/obj/tether_away_spawner/aerostat_surface,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/GovPatrol)
"d" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/GovPatrol)
"e" = (
/obj/item/device/radio/off,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/GovPatrol)
"f" = (
/obj/item/weapon/storage/box/flare,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/GovPatrol)
"g" = (
/obj/item/ammo_casing,
/turf/template_noop,
/area/submap/virgo2/GovPatrol)
"h" = (
/obj/item/ammo_casing,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/GovPatrol)
"i" = (
/obj/item/clothing/under/utility/sifguard,
/obj/item/clothing/shoes/boots/jackboots,
/obj/effect/decal/remains,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/GovPatrol)
"j" = (
/obj/item/stack/material/wood/sif,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/GovPatrol)
"k" = (
/obj/item/weapon/gun/projectile/shotgun/pump/rifle/lever,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/GovPatrol)
"m" = (
/obj/effect/decal/remains,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/GovPatrol)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
b
a
"}
(3,1,1) = {"
a
b
b
d
d
d
d
d
d
d
d
d
a
"}
(4,1,1) = {"
a
b
b
d
d
d
d
d
h
j
d
g
a
"}
(5,1,1) = {"
a
b
b
d
d
d
d
d
d
d
k
d
a
"}
(6,1,1) = {"
a
b
b
d
d
d
e
d
i
d
d
d
a
"}
(7,1,1) = {"
a
b
b
d
d
d
c
d
d
d
d
d
a
"}
(8,1,1) = {"
a
b
d
d
d
d
d
f
d
d
d
d
a
"}
(9,1,1) = {"
a
b
d
d
d
d
d
h
d
d
d
d
a
"}
(10,1,1) = {"
a
d
d
d
d
d
d
d
d
d
d
m
a
"}
(11,1,1) = {"
a
b
d
d
d
d
b
b
b
d
h
g
a
"}
(12,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
b
a
"}
(13,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
@@ -0,0 +1,724 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/template_noop)
"c" = (
/turf/simulated/wall/virgo2,
/area/submap/virgo2/Lab1)
"d" = (
/obj/structure/grille,
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/window/reinforced,
/obj/machinery/door/firedoor/border_only,
/obj/structure/window/reinforced{
dir = 8
},
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/Lab1)
"e" = (
/obj/structure/grille,
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/window/reinforced,
/obj/machinery/door/firedoor/border_only,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/Lab1)
"f" = (
/obj/structure/grille,
/obj/structure/window/reinforced{
dir = 1
},
/obj/structure/window/reinforced,
/obj/structure/window/reinforced{
dir = 4
},
/obj/machinery/door/firedoor/border_only,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/Lab1)
"g" = (
/obj/machinery/space_heater,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"h" = (
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"i" = (
/obj/machinery/door/airlock,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"j" = (
/obj/machinery/light/small,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"k" = (
/obj/structure/table/standard,
/obj/item/weapon/storage/toolbox,
/obj/random/tool,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"l" = (
/obj/machinery/door/airlock/external,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"m" = (
/obj/structure/table/standard,
/obj/random/tool,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"n" = (
/obj/machinery/vending/tool,
/obj/machinery/light{
dir = 4;
icon_state = "tube1"
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"o" = (
/obj/structure/table/rack,
/obj/item/clothing/suit/storage/hooded/wintercoat,
/obj/item/clothing/shoes/boots/winter,
/obj/machinery/light{
icon_state = "tube1";
dir = 8
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"p" = (
/obj/structure/table/rack,
/obj/item/clothing/suit/storage/hooded/wintercoat,
/obj/item/clothing/shoes/boots/winter,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"q" = (
/obj/structure/table/standard,
/obj/random/toolbox,
/obj/item/weapon/cell/super,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"r" = (
/obj/structure/closet/toolcloset,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"s" = (
/obj/machinery/light/small{
dir = 8
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"t" = (
/obj/structure/bed,
/obj/item/weapon/bedsheet,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"u" = (
/obj/machinery/power/apc{
cell_type = /obj/item/weapon/cell/hyper;
dir = 8;
name = "Unknown APC";
operating = 0;
pixel_x = -24
},
/obj/structure/cable{
icon_state = "0-4";
d2 = 4
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"v" = (
/obj/structure/cable{
d1 = 4;
d2 = 8;
icon_state = "4-8";
pixel_x = 0
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"w" = (
/obj/machinery/power/smes/buildable/point_of_interest,
/obj/structure/cable{
d2 = 8;
icon_state = "0-8"
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"x" = (
/obj/structure/table/standard,
/obj/item/weapon/paper{
desc = "Gladstone for the last fucking time, We have crowbars for a REASON. Stop breaking in through the goddamn windows! We big red shiny doors for god's sakes!"
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"y" = (
/obj/structure/table/standard,
/obj/item/device/flashlight/lamp,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"z" = (
/obj/machinery/vending/hydronutrients,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"A" = (
/obj/machinery/vending/hydroseeds,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"B" = (
/obj/machinery/light/small{
dir = 4
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"C" = (
/obj/structure/table/standard,
/obj/item/weapon/storage/toolbox/mechanical,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"D" = (
/obj/structure/table/standard,
/obj/fiftyspawner/steel,
/obj/fiftyspawner/glass,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"E" = (
/obj/structure/table/standard,
/obj/item/device/multitool,
/obj/item/clothing/glasses/welding,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"F" = (
/obj/machinery/portable_atmospherics/hydroponics,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"G" = (
/obj/structure/sink{
dir = 4;
icon_state = "sink";
pixel_x = 11;
pixel_y = 0
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"H" = (
/obj/machinery/light{
icon_state = "tube1";
dir = 8
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"I" = (
/obj/item/weapon/cell/super,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"J" = (
/obj/machinery/pros_fabricator,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"K" = (
/obj/machinery/portable_atmospherics/hydroponics,
/obj/machinery/light{
icon_state = "tube1";
dir = 8
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"L" = (
/obj/machinery/light{
dir = 4;
icon_state = "tube1"
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"M" = (
/obj/item/weapon/storage/bag/circuits,
/obj/structure/table/standard,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"N" = (
/obj/machinery/light/small{
dir = 1
},
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"O" = (
/obj/item/robot_parts/chest,
/obj/item/robot_parts/l_arm,
/obj/item/robot_parts/r_arm,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"P" = (
/obj/structure/closet/crate/hydroponics,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"Q" = (
/obj/structure/closet/secure_closet/hydroponics,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"R" = (
/obj/structure/table/standard,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"S" = (
/obj/machinery/vending/robotics,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"T" = (
/obj/structure/table/standard,
/obj/machinery/cell_charger,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"U" = (
/obj/machinery/optable,
/turf/simulated/floor/tiled/steel_dirty,
/area/submap/virgo2/Lab1)
"V" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Lab1)
"W" = (
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/Lab1)
(1,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
a
"}
(2,1,1) = {"
a
V
c
c
c
c
c
c
c
V
V
c
c
c
c
c
c
c
V
a
"}
(3,1,1) = {"
a
V
d
g
k
m
q
u
d
V
V
d
h
F
K
F
P
d
V
a
"}
(4,1,1) = {"
a
V
e
h
h
h
h
v
e
V
V
e
z
h
h
h
Q
e
V
a
"}
(5,1,1) = {"
a
V
f
h
g
n
r
w
f
V
V
f
A
G
L
h
R
f
V
a
"}
(6,1,1) = {"
a
V
c
i
c
c
c
c
c
V
V
c
c
c
c
i
c
c
V
a
"}
(7,1,1) = {"
a
V
d
h
d
V
V
V
V
V
V
V
V
V
d
h
d
V
V
a
"}
(8,1,1) = {"
a
V
e
h
f
V
V
V
V
V
V
V
V
V
f
h
e
V
V
a
"}
(9,1,1) = {"
b
V
e
j
c
c
c
c
c
W
W
c
c
c
c
N
e
V
V
b
"}
(10,1,1) = {"
b
V
e
h
l
h
s
h
l
W
W
l
h
h
l
h
e
V
V
b
"}
(11,1,1) = {"
b
V
e
h
l
h
h
h
l
W
W
l
B
h
l
h
e
V
V
b
"}
(12,1,1) = {"
b
V
e
j
c
c
c
c
c
W
W
c
c
c
c
N
e
V
V
b
"}
(13,1,1) = {"
a
V
e
h
d
V
V
V
V
V
V
V
V
V
d
h
e
V
V
a
"}
(14,1,1) = {"
a
V
f
h
f
V
V
V
V
V
V
V
V
V
f
h
f
V
V
a
"}
(15,1,1) = {"
a
V
c
i
c
c
c
c
c
V
V
c
c
c
c
i
c
c
V
a
"}
(16,1,1) = {"
a
V
d
h
h
o
t
x
d
V
V
d
C
H
h
h
S
d
V
a
"}
(17,1,1) = {"
a
V
e
h
h
h
h
h
e
V
V
e
D
I
h
h
T
e
V
a
"}
(18,1,1) = {"
a
V
f
h
h
p
t
y
f
V
V
f
E
J
M
O
U
f
V
a
"}
(19,1,1) = {"
a
V
c
c
c
c
c
c
c
V
V
c
c
c
c
c
c
c
V
a
"}
(20,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
a
"}
@@ -0,0 +1,557 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/template_noop,
/area/submap/virgo2/MilitaryCamp1)
"c" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"d" = (
/obj/structure/flora/bush,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"e" = (
/obj/effect/decal/cleanable/blood,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"f" = (
/obj/item/stack/rods,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"g" = (
/obj/item/weapon/material/shard,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"h" = (
/obj/effect/decal/remains,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"i" = (
/obj/tether_away_spawner/aerostat_surface,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"j" = (
/turf/simulated/wall/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"k" = (
/obj/effect/mine,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"l" = (
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"m" = (
/obj/structure/table/standard,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"n" = (
/obj/structure/table/standard,
/obj/item/weapon/gun/energy/gun,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"o" = (
/obj/effect/mine,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"q" = (
/obj/structure/table/standard,
/obj/item/weapon/gun/projectile/automatic/c20r,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"r" = (
/obj/structure/table/standard,
/obj/item/weapon/storage/box/syndie_kit/space,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"s" = (
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"t" = (
/obj/machinery/door/airlock,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"w" = (
/obj/effect/decal/cleanable/blood,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"x" = (
/obj/structure/girder,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"y" = (
/obj/machinery/computer/security,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"z" = (
/obj/machinery/computer/message_monitor,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"A" = (
/obj/machinery/light,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"B" = (
/obj/structure/door_assembly,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"C" = (
/obj/structure/table/standard,
/obj/random/toolbox,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"D" = (
/obj/machinery/light,
/obj/structure/table/standard,
/turf/simulated/floor/tiled/techfloor/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"E" = (
/obj/machinery/door/airlock,
/turf/simulated/floor/plating/virgo2,
/area/submap/virgo2/MilitaryCamp1)
"J" = (
/obj/effect/mine,
/turf/template_noop,
/area/submap/virgo2/MilitaryCamp1)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
b
c
c
c
b
b
b
b
c
e
c
c
c
c
b
b
c
b
a
"}
(3,1,1) = {"
a
b
h
c
c
c
b
b
c
c
k
c
c
c
c
k
c
h
c
a
"}
(4,1,1) = {"
a
c
c
c
c
c
k
c
g
c
c
c
c
c
d
c
c
c
c
a
"}
(5,1,1) = {"
a
c
c
c
c
c
j
j
j
l
l
x
j
j
c
c
c
k
d
a
"}
(6,1,1) = {"
a
k
c
c
f
j
j
j
j
j
j
j
j
j
j
c
c
c
b
a
"}
(7,1,1) = {"
a
c
c
k
j
j
m
r
j
i
s
s
w
C
j
j
c
c
J
a
"}
(8,1,1) = {"
a
d
c
c
j
j
s
l
j
j
t
j
s
m
j
j
j
c
c
a
"}
(9,1,1) = {"
a
e
c
c
l
l
o
l
j
y
A
j
s
s
j
j
j
c
c
a
"}
(10,1,1) = {"
a
k
c
c
j
l
l
l
w
s
s
j
s
i
E
l
c
k
e
a
"}
(11,1,1) = {"
a
c
c
f
j
j
i
s
s
s
i
j
B
s
l
l
g
c
c
a
"}
(12,1,1) = {"
a
c
e
c
j
j
j
t
j
z
A
j
s
s
j
j
j
f
c
a
"}
(13,1,1) = {"
a
c
k
c
l
j
n
s
j
j
t
j
s
D
j
j
j
c
k
a
"}
(14,1,1) = {"
a
b
c
c
j
j
q
s
j
i
s
s
s
m
j
j
c
c
c
a
"}
(15,1,1) = {"
a
b
c
c
g
j
j
j
j
j
j
j
j
j
j
c
k
c
c
a
"}
(16,1,1) = {"
a
b
h
c
c
c
j
j
x
j
j
x
j
j
c
c
c
h
c
a
"}
(17,1,1) = {"
a
b
b
k
c
k
c
c
c
c
c
c
c
g
k
c
c
c
b
a
"}
(18,1,1) = {"
a
b
b
c
c
c
d
c
k
c
c
c
c
c
c
k
c
b
b
a
"}
(19,1,1) = {"
a
b
b
b
c
k
c
c
c
c
c
c
c
e
c
c
b
b
b
a
"}
(20,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
@@ -0,0 +1,552 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/template_noop,
/area/submap/virgo2/MHR)
"c" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/template_noop)
"d" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"e" = (
/turf/simulated/mineral/ignore_mapgen/virgo2,
/area/submap/virgo2/MHR)
"f" = (
/obj/effect/decal/cleanable/spiderling_remains,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"g" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/MHR)
"h" = (
/obj/structure/table/rack,
/obj/item/weapon/storage/backpack,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"i" = (
/obj/structure/table/standard,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"j" = (
/obj/structure/table/standard,
/obj/item/weapon/paper{
info = "Do not enter the cave. The estimated active time of the Vicerators is much longer due to the improvements on the rotor bearings. It's estimated to be roughly a few months before we start to see any chancces of mechanical failure. ";
name = "NOTICE: DO NOT ENTER"
},
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"k" = (
/obj/effect/decal/cleanable/cobweb2,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"l" = (
/obj/tether_away_spawner/aerostat_surface,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"m" = (
/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"n" = (
/obj/effect/decal/cleanable/spiderling_remains,
/obj/tether_away_spawner/aerostat_surface,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"o" = (
/obj/effect/decal/cleanable/cobweb,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"p" = (
/obj/effect/decal/cleanable/spiderling_remains,
/obj/effect/decal/cleanable/cobweb,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"q" = (
/obj/effect/decal/remains/robot,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"r" = (
/obj/effect/decal/remains,
/obj/item/clothing/mask/gas/explorer,
/obj/item/weapon/material/twohanded/fireaxe,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
"s" = (
/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,
/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2{
outdoors = 0
},
/area/submap/virgo2/MHR)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
a
"}
(3,1,1) = {"
a
d
d
d
d
b
b
b
e
e
e
e
e
b
b
b
b
b
b
a
"}
(4,1,1) = {"
c
d
d
d
d
b
b
e
e
e
e
e
e
e
e
e
b
b
b
a
"}
(5,1,1) = {"
c
d
d
d
b
b
e
e
e
e
e
e
e
e
e
e
e
b
b
a
"}
(6,1,1) = {"
c
d
d
d
d
e
e
e
e
e
p
d
d
l
e
e
e
e
b
a
"}
(7,1,1) = {"
c
d
d
d
h
e
e
e
e
e
l
d
d
d
f
e
e
e
b
a
"}
(8,1,1) = {"
c
d
d
d
i
e
e
e
e
d
d
d
d
d
e
e
e
e
b
a
"}
(9,1,1) = {"
c
d
d
d
j
e
e
e
e
m
d
d
n
d
e
e
e
e
b
a
"}
(10,1,1) = {"
c
d
d
d
e
e
e
e
e
k
d
d
d
d
s
e
e
e
b
a
"}
(11,1,1) = {"
c
d
d
d
e
e
e
e
e
e
q
d
d
d
d
e
e
e
b
a
"}
(12,1,1) = {"
c
d
d
d
e
e
e
e
e
e
f
d
d
s
d
e
e
e
b
a
"}
(13,1,1) = {"
c
d
d
f
e
e
e
e
e
o
d
l
d
d
d
e
e
e
b
a
"}
(14,1,1) = {"
c
d
d
d
d
e
e
e
d
d
d
d
d
d
l
e
e
b
b
a
"}
(15,1,1) = {"
c
d
f
d
d
d
d
d
d
d
d
d
d
q
e
e
e
b
b
a
"}
(16,1,1) = {"
a
e
e
g
d
d
d
d
d
d
d
d
d
e
e
e
e
b
b
a
"}
(17,1,1) = {"
a
e
e
e
e
e
e
e
k
d
d
r
e
e
e
e
e
b
b
a
"}
(18,1,1) = {"
a
e
e
e
e
e
e
e
e
e
e
e
e
e
e
b
b
b
b
a
"}
(19,1,1) = {"
a
b
e
e
e
e
e
e
e
e
e
e
e
e
b
b
b
b
b
a
"}
(20,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
@@ -0,0 +1,317 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/obj/effect/decal/cleanable/liquid_fuel,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"c" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"d" = (
/obj/tether_away_spawner/aerostat_surface,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"e" = (
/obj/effect/decal/cleanable/liquid_fuel,
/obj/effect/decal/cleanable/liquid_fuel,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"f" = (
/obj/effect/decal/cleanable/liquid_fuel,
/obj/effect/decal/cleanable/liquid_fuel,
/obj/effect/decal/cleanable/liquid_fuel,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"g" = (
/obj/effect/decal/remains/mouse,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"h" = (
/obj/effect/decal/remains/mouse,
/obj/effect/decal/cleanable/liquid_fuel,
/obj/effect/decal/cleanable/liquid_fuel,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"i" = (
/obj/effect/decal/cleanable/liquid_fuel,
/turf/template_noop,
/area/template_noop)
"j" = (
/turf/simulated/mineral/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"k" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"l" = (
/obj/machinery/portable_atmospherics/canister/empty/phoron,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"m" = (
/obj/effect/decal/remains,
/obj/item/clothing/suit/space/void/merc/fire,
/obj/item/clothing/head/helmet/space/void/merc/fire,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
"n" = (
/obj/effect/decal/mecha_wreckage/ripley/firefighter,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Mudpit)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
b
c
c
i
i
i
c
g
c
c
a
a
b
a
"}
(3,1,1) = {"
a
c
c
c
b
b
b
c
c
c
c
c
c
b
a
"}
(4,1,1) = {"
a
c
c
c
c
b
j
j
j
c
c
c
c
a
a
"}
(5,1,1) = {"
a
c
b
c
c
c
j
j
j
j
c
c
c
c
a
"}
(6,1,1) = {"
a
a
c
c
c
j
j
j
j
j
c
c
c
g
a
"}
(7,1,1) = {"
a
a
c
g
j
j
j
k
l
j
j
c
c
c
a
"}
(8,1,1) = {"
a
c
c
c
j
j
c
c
c
c
g
b
c
c
a
"}
(9,1,1) = {"
a
b
b
c
d
c
c
c
m
c
c
b
b
c
a
"}
(10,1,1) = {"
a
b
b
c
b
c
c
c
c
c
c
b
b
a
a
"}
(11,1,1) = {"
a
b
c
c
c
c
g
c
n
c
c
b
c
c
a
"}
(12,1,1) = {"
a
c
c
c
c
c
c
c
c
c
c
d
c
c
a
"}
(13,1,1) = {"
a
e
e
c
c
c
c
c
c
c
c
c
c
c
a
"}
(14,1,1) = {"
a
e
f
h
c
c
a
a
i
c
c
c
c
b
a
"}
(15,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,276 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/simulated/wall/log_sif,
/area/submap/virgo2/Shack1)
"c" = (
/turf/template_noop,
/area/submap/virgo2/Shack1)
"d" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Shack1)
"e" = (
/obj/effect/decal/cleanable/cobweb,
/turf/simulated/floor/holofloor/wood{
tag = "icon-wood_broken1";
icon_state = "wood_broken1"
},
/area/submap/virgo2/Shack1)
"f" = (
/obj/structure/table/wooden_reinforced,
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"g" = (
/obj/structure/closet/cabinet,
/obj/item/clothing/suit/storage/apron/overalls,
/obj/item/clothing/under/overalls,
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"h" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"i" = (
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"j" = (
/turf/simulated/floor/holofloor/wood{
tag = "icon-wood_broken0";
icon_state = "wood_broken0"
},
/area/submap/virgo2/Shack1)
"k" = (
/obj/effect/decal/cleanable/dirt,
/turf/simulated/floor/holofloor/wood{
tag = "icon-wood_broken5";
icon_state = "wood_broken5"
},
/area/submap/virgo2/Shack1)
"m" = (
/obj/structure/simple_door/wood,
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"n" = (
/turf/simulated/floor/holofloor/wood{
tag = "icon-wood_broken3";
icon_state = "wood_broken3"
},
/area/submap/virgo2/Shack1)
"o" = (
/obj/structure/table/bench/wooden,
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"p" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wooden_reinforced,
/obj/item/weapon/storage/toolbox,
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"q" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wooden_reinforced,
/obj/item/weapon/material/twohanded/fireaxe/scythe,
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"r" = (
/obj/effect/decal/cleanable/spiderling_remains,
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"s" = (
/turf/simulated/floor/holofloor/wood{
tag = "icon-wood_broken6";
icon_state = "wood_broken6"
},
/area/submap/virgo2/Shack1)
"t" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/table/wooden_reinforced,
/obj/item/device/flashlight/lamp,
/turf/simulated/floor/wood,
/area/submap/virgo2/Shack1)
"v" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/template_noop)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
b
b
b
b
b
b
b
b
a
"}
(3,1,1) = {"
a
b
e
h
i
n
h
p
b
a
"}
(4,1,1) = {"
a
b
f
i
i
i
o
q
b
a
"}
(5,1,1) = {"
a
b
g
j
i
i
i
r
b
a
"}
(6,1,1) = {"
a
b
h
h
i
i
i
s
b
a
"}
(7,1,1) = {"
a
b
h
k
i
i
i
t
b
a
"}
(8,1,1) = {"
a
b
b
b
m
m
b
b
b
a
"}
(9,1,1) = {"
a
c
c
c
d
d
c
c
c
a
"}
(10,1,1) = {"
a
c
c
c
d
d
c
c
c
a
"}
(11,1,1) = {"
a
c
c
c
d
d
c
c
c
a
"}
(12,1,1) = {"
v
d
d
d
d
d
d
d
d
v
"}
(13,1,1) = {"
v
d
d
d
d
d
d
d
d
v
"}
(14,1,1) = {"
a
c
c
c
c
c
c
c
c
a
"}
(15,1,1) = {"
a
a
a
a
a
a
a
a
a
a
"}
@@ -0,0 +1,135 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Small1)
"c" = (
/turf/template_noop,
/area/submap/virgo2/Small1)
"d" = (
/obj/tether_away_spawner/aerostat_surface,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/Small1)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
c
c
b
b
b
b
c
c
a
"}
(3,1,1) = {"
a
c
b
b
b
b
b
b
c
a
"}
(4,1,1) = {"
a
b
b
d
b
b
b
b
b
a
"}
(5,1,1) = {"
a
b
b
b
b
b
b
b
b
a
"}
(6,1,1) = {"
a
b
b
b
b
b
b
b
b
a
"}
(7,1,1) = {"
a
b
b
b
b
b
d
b
b
a
"}
(8,1,1) = {"
a
c
b
b
b
b
b
b
c
a
"}
(9,1,1) = {"
a
c
c
b
b
b
b
c
c
a
"}
(10,1,1) = {"
a
a
a
a
a
a
a
a
a
a
"}
@@ -0,0 +1,470 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/turf/template_noop,
/area/template_noop)
"b" = (
/turf/template_noop,
/area/submap/virgo2/SnowR1)
"c" = (
/turf/simulated/mineral/ignore_mapgen/virgo2,
/area/submap/virgo2/SnowR1)
"d" = (
/obj/structure/loot_pile/maint/trash,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/SnowR1)
"e" = (
/obj/structure/closet/crate/trashcart,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/SnowR1)
"f" = (
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/SnowR1)
"g" = (
/obj/random/trash,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/SnowR1)
"h" = (
/obj/tether_away_spawner/aerostat_surface,
/turf/simulated/mineral/floor/ignore_mapgen/virgo2,
/area/submap/virgo2/SnowR1)
(1,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
(2,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
a
"}
(3,1,1) = {"
a
b
b
b
b
b
b
b
b
b
b
f
f
f
f
f
f
b
b
a
"}
(4,1,1) = {"
a
b
b
b
b
b
c
c
c
c
f
f
f
f
f
f
b
b
b
a
"}
(5,1,1) = {"
a
b
b
b
b
b
c
c
c
f
f
f
f
f
f
c
b
b
b
a
"}
(6,1,1) = {"
a
b
b
b
b
c
c
c
f
f
f
f
h
f
f
c
b
b
b
a
"}
(7,1,1) = {"
a
b
b
c
c
c
c
c
f
f
f
f
f
f
f
c
c
b
b
a
"}
(8,1,1) = {"
a
b
c
c
c
c
c
c
f
f
f
f
f
f
f
c
c
b
b
a
"}
(9,1,1) = {"
a
b
c
c
c
d
g
f
f
f
f
f
f
f
c
c
c
b
b
a
"}
(10,1,1) = {"
a
b
c
c
c
e
f
f
f
f
h
f
f
f
c
c
c
b
b
a
"}
(11,1,1) = {"
a
b
c
c
c
f
f
f
f
f
f
f
f
f
c
c
c
b
b
a
"}
(12,1,1) = {"
a
b
c
c
c
g
f
f
f
f
f
f
f
c
c
c
c
b
b
a
"}
(13,1,1) = {"
a
b
c
c
c
g
f
f
f
f
f
f
f
c
c
c
c
b
b
a
"}
(14,1,1) = {"
a
b
b
c
c
c
c
f
f
f
f
f
f
c
c
c
b
b
b
a
"}
(15,1,1) = {"
a
b
b
b
c
c
c
f
f
f
f
f
f
c
c
c
c
b
b
a
"}
(16,1,1) = {"
a
b
b
b
b
c
c
f
f
f
f
f
f
c
c
c
b
b
b
a
"}
(17,1,1) = {"
a
b
b
b
b
b
b
f
f
h
f
f
f
b
b
b
b
b
b
a
"}
(18,1,1) = {"
a
b
b
b
b
b
b
f
f
f
f
f
f
b
b
b
b
b
b
a
"}
(19,1,1) = {"
a
b
b
b
b
b
b
f
f
f
f
f
f
b
b
b
b
b
b
a
"}
(20,1,1) = {"
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
"}
@@ -0,0 +1,103 @@
#include "virgo2_submap_areas.dm"
#if MAP_TEST
#include "Blackshuttledown.dmm"
#include "Boombase.dmm"
#include "CaveS.dmm"
#include "DecoupledEngine.dmm"
#include "GovPatrol.dmm"
#include "Lab1.dmm"
#include "MCamp1.dmm"
#include "MHR.dmm"
#include "Mudpit.dmm"
#include "Rockybase.dmm"
#include "Shack1.dmm"
#include "Smol1.dmm"
#include "Snowrock1.dmm"
#endif
/datum/map_template/virgo2
name = "Surface Content - Virgo 2"
desc = "For seeding submaps on Virgo 2"
allow_duplicates = TRUE
/datum/map_template/virgo2/Blackshuttledown
name = "V2 - Black Shuttle Down"
desc = "You REALLY shouldn't be near this."
mappath = 'Blackshuttledown.dmm'
cost = 30
allow_duplicates = FALSE
/datum/map_template/virgo2/Boombase
name = "V2 - Boombase"
desc = "What happens when you don't follow SOP."
mappath = 'Boombase.dmm'
cost = 5
/datum/map_template/virgo2/CaveS
name = "V2 - CaveS"
desc = "Chitter chitter!"
mappath = 'CaveS.dmm'
cost = 20
allow_duplicates = FALSE
/datum/map_template/virgo2/DecoupledEngine
name = "V2 - Decoupled Engine"
desc = "A damaged fission engine jettisoned from a starship long ago."
mappath = 'DecoupledEngine.dmm'
cost = 15
/datum/map_template/virgo2/GovPatrol
name = "V2 - Government Patrol"
desc = "A long lost SifGuard ground survey patrol. Now they have you guys!"
mappath = 'GovPatrol.dmm'
cost = 5
/datum/map_template/virgo2/Lab1
name = "V2 - Lab1"
desc = "An isolated small robotics lab."
mappath = 'Lab1.dmm'
cost = 5
/datum/map_template/virgo2/Mcamp1
name = "V2 - Military Camp 1"
desc = "A derelict military camp host to some unsavory dangers"
mappath = 'MCamp1.dmm'
cost = 15
/datum/map_template/virgo2/MHR
name = "V2 - Manhack Rock"
desc = "A rock filled with nasty Synthetics."
mappath = 'MHR.dmm'
cost = 15
/datum/map_template/virgo2/Mudpit
name = "V2 - Mudpit"
desc = "What happens when someone is a bit too careless with gas.."
mappath = 'Mudpit.dmm'
cost = 15
/datum/map_template/virgo2/Rockybase
name = "V2 - Rocky Base"
desc = "A guide to upsetting Icarus and the EIO"
mappath = 'Rockybase.dmm'
cost = 35
allow_duplicates = FALSE
/datum/map_template/virgo2/Shack1
name = "V2 - Shack1"
desc = "A small shack in the middle of nowhere, Your halloween murder happens here"
mappath = 'Shack1.dmm'
cost = 5
/datum/map_template/virgo2/Smol1
name = "V2 - Smol1"
desc = "A tiny grove of trees, The Nemesis of thicc"
mappath = 'Smol1.dmm'
cost = 5
/datum/map_template/virgo2/Snowrock1
name = "V2 - Snowrock1"
desc = "A rocky snow covered area"
mappath = 'Snowrock1.dmm'
cost = 5
@@ -0,0 +1,54 @@
/area/submap/virgo2
name = "Submap Area"
icon_state = "submap"
dynamic_lighting = FALSE
base_turf = /turf/simulated/mineral/floor/ignore_mapgen/virgo2
/area/submap/virgo2/spider1
name = "spider nest"
/area/submap/virgo2/Field1
name = "Field 1"
/area/submap/virgo2/Lake1
name = "Lake 1"
/area/submap/virgo2/MilitaryCamp1
name = "Military Camp 1"
/area/submap/virgo2/Mudpit
name = "Mudpit"
/area/submap/virgo2/Shack1
name = "Shack1"
/area/submap/virgo2/Small1
name = "Small1"
/area/submap/virgo2/SnowR1
name = "SnowR1"
/area/submap/virgo2/BoomBase
name = "Boom1"
/area/submap/virgo2/Blackshuttledown
name = "BSD"
requires_power = FALSE
/area/submap/virgo2/Lab1
name = "Lab1"
/area/submap/virgo2/MHR
name = "Manhack Rock"
/area/submap/virgo2/Rockybase
name = "Rockybase"
/area/submap/virgo2/GovPatrol
name = "GovPatrol"
/area/submap/virgo2/DecoupledEngine
name = "DecoupledEngine"
/area/submap/virgo2/CaveS
name = "CaveS"
File diff suppressed because it is too large Load Diff
@@ -1,8 +1,8 @@
// -- Datums -- //
/datum/shuttle_destination/excursion/alienship1
name = "Virgo 4 Orbit"
my_area = /area/shuttle/excursion/away_alienship // /area/shuttle/excursion/space
/datum/shuttle_destination/excursion/alienship
name = "Unknown Ship"
my_area = /area/shuttle/excursion/away_alienship
preferred_interim_area = /area/shuttle/excursion/space_moving
skip_me = TRUE
@@ -15,7 +15,8 @@
/obj/shuttle_connector/alienship
name = "shuttle connector - alienship"
shuttle_name = "Excursion Shuttle"
destinations = list(/datum/shuttle_destination/excursion/alienship1)
destinations = list(/datum/shuttle_destination/excursion/alienship)
initialized = TRUE //Just don't.
/obj/away_mission_init/alienship
name = "away mission initializer - alienship"
@@ -55,7 +56,18 @@
teleport_friends += src
else //You are dismissed
qdel(src)
return INITIALIZE_HINT_QDEL
/obj/machinery/porta_turret/alien/ion
name = "interior anti-boarding turret"
desc = "A very tough looking turret made by alien hands."
installation = /obj/item/weapon/gun/energy/ionrifle/pistol
enabled = TRUE
lethal = TRUE
ailock = TRUE
check_all = TRUE
health = 250
maxhealth = 250
/obj/away_mission_init/alienship/door_n2s
icon_state = "n2s"
@@ -106,6 +118,8 @@
var/did_entry = FALSE
var/list/teleport_to
var/area/dump_area
var/obj/shuttle_connector/shuttle_friend
/area/shuttle/excursion/away_alienship/initialize()
. = ..()
dump_area = locate(/area/tether_away/alienship/equip_dump)
@@ -116,15 +130,6 @@
if(did_entry)
return
//Rename this destination for return trips
var/datum/shuttle/web_shuttle/ES = shuttle_controller.shuttles["Excursion Shuttle"]
var/datum/shuttle_web_master/WM = ES.web_master
for(var/dest in WM.destinations)
var/datum/shuttle_destination/D = dest
if(istype(D,/datum/shuttle_destination/excursion/alienship1))
D.name = "Unknown Vessel"
break
//No talky!
for(var/obj/machinery/telecomms/relay/R in contents)
R.toggled = FALSE
@@ -165,7 +170,7 @@
did_entry = TRUE
/area/tether_away/alienship
name = "\improper Unknown"
name = "\improper Away Mission - Unknown Vessel"
icon_state = "away"
base_turf = /turf/space
requires_power = FALSE
+9 -9
View File
@@ -101,10 +101,6 @@
/obj/away_mission_init/alienship/start_n2s,
/turf/simulated/shuttle/floor/alien,
/area/tether_away/alienship)
"ax" = (
/obj/shuttle_connector/alienship,
/turf/simulated/shuttle/floor/alienplating,
/area/tether_away/alienship)
"ay" = (
/obj/structure/bed/alien,
/obj/away_mission_init/alienship/start_n2s,
@@ -580,6 +576,10 @@
/obj/item/weapon/reagent_containers/food/snacks/liquidfood,
/turf/simulated/shuttle/floor/alien,
/area/tether_away/alienship)
"YP" = (
/obj/machinery/porta_turret/alien/ion,
/turf/simulated/shuttle/floor/alienplating,
/area/tether_away/alienship)
(1,1,1) = {"
aa
@@ -5378,7 +5378,7 @@ af
ae
ae
ae
ae
YP
ae
ae
ae
@@ -5418,7 +5418,7 @@ af
ae
ae
ae
ae
YP
ae
ae
ae
@@ -7830,7 +7830,7 @@ af
af
am
af
ax
ae
ah
ah
ah
@@ -10258,7 +10258,7 @@ af
ae
ae
ae
ae
YP
ae
ae
ae
@@ -10298,7 +10298,7 @@ af
ae
ae
ae
ae
YP
ae
ae
ae
@@ -84,6 +84,43 @@
initialized = TRUE
return INITIALIZE_HINT_QDEL
// Two mob spawners that are placed on the map that spawn some mobs!
// They keep track of their mob, and when it's dead, spawn another (only if nobody is looking)
/obj/tether_away_spawner/beach_outside
name = "Beach Outside Spawner" //Just a name
faction = "beach_out" //Sets all the mobs to this faction so they don't infight
atmos_comp = TRUE //Sets up their atmos tolerances to work in this setting, even if they don't normally (20% up/down tolerance for each gas, and heat)
prob_spawn = 50 //Chance of this spawner spawning a mob (once this is missed, the spawner is 'depleted' and won't spawn anymore)
prob_fall = 25 //Chance goes down by this much each time it spawns one (not defining and prob_spawn 100 means they spawn as soon as one dies)
guard = 40 //They'll stay within this range (not defining disables)
mobs_to_pick_from = list(
/mob/living/simple_animal/snake
)
/obj/tether_away_spawner/beach_outside_friendly
name = "Fennec Spawner"
faction = "fennec"
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 25
guard = 40
mobs_to_pick_from = list(
/mob/living/simple_animal/fennec
)
/obj/tether_away_spawner/beach_cave
name = "Beach Cave Spawner"
faction = "beach_cave"
atmos_comp = TRUE
prob_spawn = 100
prob_fall = 10
guard = 20
mobs_to_pick_from = list(
/mob/living/simple_animal/hostile/deathclaw,
/mob/living/simple_animal/hostile/frog,
/mob/living/simple_animal/hostile/hivebot/range/ion
)
// These are step-teleporters, for map edge transitions
// This top one goes INTO the cave
/obj/effect/step_trigger/teleporter/away_beach_tocave/New()
@@ -126,22 +163,22 @@
dynamic_lighting = 0
/area/tether_away/beach/powershed
name = "\improper Desert Planet Coast"
name = "\improper Away Mission - Virgo 4 Coast PS"
icon_state = "blue2"
base_turf = /turf/simulated/floor/beach/sand
/area/tether_away/beach/coast
name = "\improper Desert Planet Coast"
name = "\improper Away Mission - Virgo 4 Coast"
icon_state = "blue2"
base_turf = /turf/simulated/floor/beach/coastline
/area/tether_away/beach/water
name = "\improper Desert Planet Water"
name = "\improper Away Mission - Virgo 4 Water"
icon_state = "bluenew"
base_turf = /turf/simulated/floor/beach/coastwater
/area/tether_away/beach/jungle
name = "\improper Desert Planet Jungle"
name = "\improper Away Mission - Virgo 4 Desert"
icon_state = "green"
base_turf = /turf/simulated/floor/beach/sand/desert
@@ -151,17 +188,17 @@
ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
/area/tether_away/cave/explored/normal
name = "Tunnels"
name = "\improper Away Mission - Virgo 4 Cave (E)"
icon_state = "explored"
/area/tether_away/cave/unexplored/normal
name = "Tunnels"
name = "\improper Away Mission - Virgo 4 Cave (UE)"
icon_state = "unexplored"
/area/tether_away/cave/explored/deep
name = "Depths"
name = "\improper Away Mission - Virgo 4 Cave Deep (E)"
icon_state = "explored_deep"
/area/tether_away/cave/unexplored/deep
name = "Depths"
name = "\improper Away Mission - Virgo 4 Cave Deep (UE)"
icon_state = "unexplored_deep"
+36 -48
View File
@@ -242,10 +242,6 @@
/obj/item/weapon/stool/padded,
/turf/simulated/floor/tiled/asteroid_steel,
/area/tether_away/beach)
"aY" = (
/mob/living/simple_animal/crab,
/turf/simulated/floor/beach/sand/desert,
/area/tether_away/beach/jungle)
"aZ" = (
/obj/effect/overlay/palmtree_l,
/turf/simulated/floor/beach/sand,
@@ -282,14 +278,6 @@
"bi" = (
/turf/simulated/floor/water/shoreline,
/area/tether_away/beach)
"bj" = (
/mob/living/simple_animal/hostile/snake,
/turf/simulated/floor/beach/sand/desert,
/area/tether_away/beach/jungle)
"bk" = (
/mob/living/carbon/human/monkey,
/turf/simulated/floor/beach/sand/desert,
/area/tether_away/beach/jungle)
"bl" = (
/turf/unsimulated/wall/planetary/normal,
/area/tether_away/beach/jungle)
@@ -317,18 +305,18 @@
/obj/effect/step_trigger/zlevel_fall/beach,
/turf/simulated/floor/beach/sand/desert,
/area/tether_away/beach/jungle)
"bt" = (
/mob/living/simple_animal/fennec,
"xW" = (
/obj/tether_away_spawner/beach_outside_friendly,
/turf/simulated/floor/beach/sand/desert,
/area/tether_away/beach/jungle)
"bu" = (
/mob/living/simple_animal/fennec,
"TU" = (
/obj/tether_away_spawner/beach_outside,
/turf/simulated/floor/beach/sand/desert,
/area/tether_away/beach/jungle)
"UZ" = (
/obj/tether_away_spawner/beach_outside_friendly,
/turf/simulated/floor/beach/sand,
/area/tether_away/beach)
"bv" = (
/mob/living/simple_animal/fennec,
/turf/simulated/floor/tiled/asteroid_steel,
/area/tether_away/beach)
(1,1,1) = {"
bl
@@ -1387,7 +1375,7 @@ aa
aa
aa
aa
bk
aa
aa
aa
aa
@@ -1477,7 +1465,7 @@ aa
aa
aa
aa
bj
aa
aa
aa
aa
@@ -1958,7 +1946,7 @@ aa
aa
aa
aa
aa
TU
aa
aa
aa
@@ -2244,7 +2232,7 @@ aa
aa
aa
aa
aa
xW
aa
aa
aa
@@ -2343,7 +2331,7 @@ aa
aa
aa
aa
aa
xW
aa
aa
aa
@@ -2788,7 +2776,7 @@ aa
aa
aa
aa
bj
aa
aa
aa
aa
@@ -2831,7 +2819,7 @@ aa
aa
aa
aa
bt
aa
aa
aa
aa
@@ -3298,7 +3286,7 @@ aa
aa
aa
aa
bt
aa
aa
aa
aa
@@ -3530,7 +3518,7 @@ aa
aa
aa
aa
aa
TU
aa
aa
aa
@@ -3844,7 +3832,7 @@ aa
aa
aa
aa
aY
aa
aa
aa
ad
@@ -5787,7 +5775,7 @@ ad
ad
ad
ad
bu
ad
ad
ad
ad
@@ -5902,7 +5890,7 @@ ad
ad
ad
ad
ad
UZ
ad
ad
ad
@@ -7261,7 +7249,7 @@ aX
al
ad
ad
ad
UZ
ad
bb
ad
@@ -7607,7 +7595,7 @@ ad
ar
af
al
bv
al
al
al
ad
@@ -8338,7 +8326,7 @@ aa
ad
ad
ad
ad
UZ
ad
ad
ar
@@ -8891,7 +8879,7 @@ aa
aa
aa
aa
bj
aa
aa
aa
aa
@@ -8935,7 +8923,7 @@ aa
aa
aa
aa
bt
aa
aa
aa
aa
@@ -9134,7 +9122,7 @@ aa
aa
aa
aa
bk
aa
aa
aa
aa
@@ -9413,7 +9401,7 @@ aa
aa
aa
aa
aa
xW
aa
aa
aa
@@ -10039,7 +10027,7 @@ aa
aa
aa
aa
aa
xW
aa
aa
aa
@@ -10130,7 +10118,7 @@ aa
aa
aa
bp
aa
xW
aa
aa
aa
@@ -11408,7 +11396,7 @@ aa
aa
aa
aa
aY
aa
aa
aa
ad
@@ -11485,7 +11473,7 @@ aa
aa
aa
aa
aa
TU
aa
aa
aa
@@ -12005,7 +11993,7 @@ aa
aa
aa
aa
bt
aa
aa
aa
aa
@@ -12131,7 +12119,7 @@ aa
aa
aa
aa
aa
xW
aa
aa
aa
@@ -13162,7 +13150,7 @@ aa
aa
aa
aa
aa
TU
aa
aa
aa
@@ -13272,7 +13260,7 @@ bq
aa
aa
aa
bt
aa
aa
aa
aa
@@ -13326,7 +13314,7 @@ aa
aa
aa
aa
aa
xW
aa
aa
aa
+21 -21
View File
@@ -31,14 +31,14 @@
"j" = (
/turf/unsimulated/wall/planetary/normal,
/area/tether_away/cave/explored/normal)
"k" = (
/mob/living/simple_animal/hostile/deathclaw,
/turf/simulated/mineral/floor/ignore_mapgen/cave,
/area/tether_away/cave/explored/deep)
"l" = (
/mob/living/simple_animal/hostile/deathclaw,
"r" = (
/obj/tether_away_spawner/beach_cave,
/turf/simulated/mineral/floor/ignore_mapgen/cave,
/area/tether_away/cave/explored/normal)
"x" = (
/obj/tether_away_spawner/beach_cave,
/turf/simulated/mineral/floor/ignore_mapgen/cave,
/area/tether_away/cave/explored/deep)
(1,1,1) = {"
g
@@ -1559,7 +1559,7 @@ a
a
a
b
k
b
b
a
a
@@ -1681,7 +1681,7 @@ a
a
a
b
b
x
b
b
a
@@ -3034,7 +3034,7 @@ a
c
d
d
d
r
d
d
d
@@ -3290,7 +3290,7 @@ c
c
d
d
d
r
d
c
c
@@ -3405,7 +3405,7 @@ d
d
d
d
l
d
d
d
d
@@ -5490,7 +5490,7 @@ c
c
c
d
d
r
d
c
c
@@ -7816,7 +7816,7 @@ d
d
d
d
l
d
d
d
c
@@ -8060,7 +8060,7 @@ d
d
d
d
d
r
d
d
c
@@ -8433,7 +8433,7 @@ c
d
d
d
d
r
d
c
c
@@ -9638,7 +9638,7 @@ c
c
d
d
d
r
d
d
c
@@ -9960,7 +9960,7 @@ b
b
b
b
k
b
b
a
b
@@ -10085,7 +10085,7 @@ b
b
b
b
b
x
b
a
a
@@ -10363,7 +10363,7 @@ c
c
d
d
d
r
d
d
c
@@ -10841,7 +10841,7 @@ a
a
c
d
d
r
d
d
d
@@ -11900,7 +11900,7 @@ a
a
a
b
b
x
b
b
a
+5 -6
View File
@@ -115,14 +115,13 @@
/area/tether/surfacebase/emergency_storage/atrium)
lateload_z_levels = list(
"Tether - Misc",
"Tether - Ships"
list("Tether - Misc","Tether - Ships"), //Stock Tether lateload maps
list("Alien Ship - Z1 Ship"),
list("Desert Planet - Z1 Beach","Desert Planet - Z2 Cave"),
list("Remmi Aerostat - Z1 Aerostat","Remmi Aerostat - Z2 Surface")
)
lateload_single_pick = list(
list("Desert Planet - Z1 Beach","Desert Planet - Z2 Cave"),
"Alien Ship - Z1 Ship"
)
lateload_single_pick = null //Nothing right now.
/datum/map/tether/perform_map_generation()
+24
View File
@@ -175,6 +175,14 @@
shuttle_tag = "Excursion Shuttle"
req_access = list()
req_one_access = list(access_heads,access_explorer,access_pilot)
var/wait_time = 45 MINUTES
/obj/machinery/computer/shuttle_control/web/excursion/ui_interact()
if(world.time < wait_time)
to_chat(usr,"<span class='warning'>The console is locked while the shuttle refuels. It will be complete in [round((wait_time - world.time)/10/60)] minute\s.</span>")
return FALSE
. = ..()
/datum/shuttle/web_shuttle/excursion
name = "Excursion Shuttle"
@@ -182,6 +190,22 @@
current_area = /area/shuttle/excursion/tether
docking_controller_tag = "expshuttle_docker"
web_master_type = /datum/shuttle_web_master/excursion
var/abduct_chance = 1 //Prob
/datum/shuttle/web_shuttle/excursion/long_jump(var/area/departing, var/area/destination, var/area/interim, var/travel_time, var/direction)
if(prob(abduct_chance))
abduct_chance = 0
//Build the route to the alien ship
var/obj/shuttle_connector/alienship/ASC = new /obj/shuttle_connector/alienship(null)
ASC.setup_routes()
//Redirect us onto that route instead
var/datum/shuttle/web_shuttle/WS = shuttle_controller.shuttles[name]
var/datum/shuttle_destination/ASD = WS.web_master.get_destination_by_type(/datum/shuttle_destination/excursion/alienship)
WS.web_master.future_destination = ASD
. = ..(departing,ASD.my_area,interim,travel_time,direction)
else
. = ..()
/datum/shuttle_web_master/excursion
destination_class = /datum/shuttle_destination/excursion
+3
View File
@@ -1234,6 +1234,7 @@
#include "code\game\turfs\unsimulated\floor.dm"
#include "code\game\turfs\unsimulated\planetary.dm"
#include "code\game\turfs\unsimulated\shuttle.dm"
#include "code\game\turfs\unsimulated\sky_vr.dm"
#include "code\game\turfs\unsimulated\walls.dm"
#include "code\game\verbs\advanced_who.dm"
#include "code\game\verbs\ignore.dm"
@@ -2139,8 +2140,10 @@
#include "code\modules\mob\living\simple_animal\vore\frog.dm"
#include "code\modules\mob\living\simple_animal\vore\gaslamp.dm"
#include "code\modules\mob\living\simple_animal\vore\horse.dm"
#include "code\modules\mob\living\simple_animal\vore\jelly.dm"
#include "code\modules\mob\living\simple_animal\vore\otie.dm"
#include "code\modules\mob\living\simple_animal\vore\panther.dm"
#include "code\modules\mob\living\simple_animal\vore\shadekin.dm"
#include "code\modules\mob\living\simple_animal\vore\snake.dm"
#include "code\modules\mob\living\simple_animal\vore\solargrub.dm"
#include "code\modules\mob\living\simple_animal\vore\solargrub_larva.dm"