Merge branch 'master' of https://github.com/PolarisSS13/Polaris into polaris-sync-2018-01-19

# Conflicts:
#	code/_onclick/hud/hud.dm
#	code/modules/clothing/glasses/glasses.dm
#	code/modules/mob/living/carbon/human/update_icons.dm
#	maps/southern_cross/southern_cross-1.dmm
#	maps/southern_cross/southern_cross-3.dmm
#	maps/southern_cross/southern_cross-6.dmm
#	vorestation.dme
This commit is contained in:
Leshana
2018-01-19 17:38:43 -05:00
81 changed files with 2358 additions and 16423 deletions

View File

@@ -56,6 +56,68 @@ proc/isemptylist(list/list)
return 1
return 0
//////////////////////////////////////////////////////
// "typecache" utilities - Making and searching them
//////////////////////////////////////////////////////
//Checks for specific types in specifically structured (Assoc "type" = TRUE) lists ('typecaches')
/proc/is_type_in_typecache(atom/A, list/L)
if(!LAZYLEN(L) || !A)
return FALSE
return L[A.type]
//returns a new list with only atoms that are in typecache L
/proc/typecache_filter_list(list/atoms, list/typecache)
. = list()
for(var/thing in atoms)
var/atom/A = thing
if(typecache[A.type])
. += A
/proc/typecache_filter_list_reverse(list/atoms, list/typecache)
. = list()
for(var/thing in atoms)
var/atom/A = thing
if(!typecache[A.type])
. += A
/proc/typecache_filter_multi_list_exclusion(list/atoms, list/typecache_include, list/typecache_exclude)
. = list()
for(var/thing in atoms)
var/atom/A = thing
if(typecache_include[A.type] && !typecache_exclude[A.type])
. += A
//Like typesof() or subtypesof(), but returns a typecache instead of a list
/proc/typecacheof(path, ignore_root_path, only_root_path = FALSE)
if(ispath(path))
var/list/types = list()
if(only_root_path)
types = list(path)
else
types = ignore_root_path ? subtypesof(path) : typesof(path)
var/list/L = list()
for(var/T in types)
L[T] = TRUE
return L
else if(islist(path))
var/list/pathlist = path
var/list/L = list()
if(ignore_root_path)
for(var/P in pathlist)
for(var/T in subtypesof(P))
L[T] = TRUE
else
for(var/P in pathlist)
if(only_root_path)
L[P] = TRUE
else
for(var/T in typesof(P))
L[T] = TRUE
return L
//////////////////////////////////////////////////////
//Empties the list by setting the length to 0. Hopefully the elements get garbage collected
proc/clearlist(list/list)
if(istype(list))

View File

@@ -1094,6 +1094,15 @@ var/global/list/common_tools = list(
return 1
return 0
/proc/is_wire_tool(obj/item/I)
if(istype(I, /obj/item/device/multitool))
return TRUE
if(istype(I, /obj/item/weapon/wirecutters))
return TRUE
if(istype(I, /obj/item/device/assembly/signaler))
return TRUE
return
proc/is_hot(obj/item/W as obj)
switch(W.type)
if(/obj/item/weapon/weldingtool)

View File

@@ -0,0 +1,44 @@
SUBSYSTEM_DEF(orbit)
name = "Orbits"
priority = 8 // FIRE_PRIORITY_ORBIT
wait = 2
flags = SS_NO_INIT|SS_TICKER
var/list/currentrun = list()
var/list/processing = list()
/datum/controller/subsystem/orbit/stat_entry()
..("P:[processing.len]")
/datum/controller/subsystem/orbit/fire(resumed = 0)
if (!resumed)
src.currentrun = processing.Copy()
//cache for sanic speed (lists are references anyways)
var/list/currentrun = src.currentrun
while (currentrun.len)
var/datum/orbit/O = currentrun[currentrun.len]
currentrun.len--
if (!O)
processing -= O
if (MC_TICK_CHECK)
return
continue
if (!O.orbiter)
qdel(O)
if (MC_TICK_CHECK)
return
continue
if (O.lastprocess >= world.time) //we already checked recently
if (MC_TICK_CHECK)
return
continue
var/targetloc = get_turf(O.orbiting)
if (targetloc != O.lastloc || O.orbiter.loc != targetloc)
O.Check(targetloc)
if (MC_TICK_CHECK)
return

132
code/datums/orbit.dm Normal file
View File

@@ -0,0 +1,132 @@
/datum/orbit
var/atom/movable/orbiter
var/atom/orbiting
var/lock = TRUE
var/turf/lastloc
var/lastprocess
/datum/orbit/New(_orbiter, _orbiting, _lock)
orbiter = _orbiter
orbiting = _orbiting
SSorbit.processing += src
if (!orbiting.orbiters)
orbiting.orbiters = list()
orbiting.orbiters += src
if (orbiter.orbiting)
orbiter.stop_orbit()
orbiter.orbiting = src
Check()
lock = _lock
//do not qdel directly, use stop_orbit on the orbiter. (This way the orbiter can bind to the orbit stopping)
/datum/orbit/Destroy(force = FALSE)
SSorbit.processing -= src
if (orbiter)
orbiter.orbiting = null
orbiter = null
if (orbiting)
if (orbiting.orbiters)
orbiting.orbiters -= src
if (!orbiting.orbiters.len)//we are the last orbit, delete the list
orbiting.orbiters = null
orbiting = null
return ..()
/datum/orbit/proc/Check(turf/targetloc, list/checked_already = list())
//Avoid infinite loops for people who end up orbiting themself through another orbiter
checked_already[src] = TRUE
if (!orbiter)
qdel(src)
return
if (!orbiting)
orbiter.stop_orbit()
return
if (!orbiter.orbiting) //admin wants to stop the orbit.
orbiter.orbiting = src //set it back to us first
orbiter.stop_orbit()
var/atom/movable/AM = orbiting
if(istype(AM) && AM.orbiting && AM.orbiting.orbiting == orbiter)
orbiter.stop_orbit()
return
lastprocess = world.time
if (!targetloc)
targetloc = get_turf(orbiting)
if (!targetloc || (!lock && orbiter.loc != lastloc && orbiter.loc != targetloc))
orbiter.stop_orbit()
return
orbiter.loc = targetloc
//TODO-LESH-DEL orbiter.update_parallax_contents()
orbiter.update_light()
lastloc = orbiter.loc
for(var/other_orbit in orbiter.orbiters)
var/datum/orbit/OO = other_orbit
//Skip if checked already
if(checked_already[OO])
continue
OO.Check(targetloc, checked_already)
/atom/movable/var/datum/orbit/orbiting = null
/atom/var/list/orbiters = null
//A: atom to orbit
//radius: range to orbit at, radius of the circle formed by orbiting (in pixels)
//clockwise: whether you orbit clockwise or anti clockwise
//rotation_speed: how fast to rotate (how many ds should it take for a rotation to complete)
//rotation_segments: the resolution of the orbit circle, less = a more block circle, this can be used to produce hexagons (6 segments) triangles (3 segments), and so on, 36 is the best default.
//pre_rotation: Chooses to rotate src 90 degress towards the orbit dir (clockwise/anticlockwise), useful for things to go "head first" like ghosts
//lockinorbit: Forces src to always be on A's turf, otherwise the orbit cancels when src gets too far away (eg: ghosts)
/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = FALSE, rotation_speed = 20, rotation_segments = 36, pre_rotation = TRUE, lockinorbit = FALSE)
if (!istype(A))
return
new/datum/orbit(src, A, lockinorbit)
if (!orbiting) //something failed, and our orbit datum deleted itself
return
var/matrix/initial_transform = matrix(transform)
//Head first!
if (pre_rotation)
var/matrix/M = matrix(transform)
var/pre_rot = 90
if(!clockwise)
pre_rot = -90
M.Turn(pre_rot)
transform = M
var/matrix/shift = matrix(transform)
shift.Translate(0,radius)
transform = shift
SpinAnimation(rotation_speed, -1, clockwise, rotation_segments)
//we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit
transform = initial_transform
/atom/movable/proc/stop_orbit()
SpinAnimation(0,0)
qdel(orbiting)
/atom/Destroy(force = FALSE)
. = ..()
if (orbiters)
for (var/thing in orbiters)
var/datum/orbit/O = thing
if (O.orbiter)
O.orbiter.stop_orbit()
/atom/movable/Destroy(force = FALSE)
. = ..()
if (orbiting)
stop_orbit()
/*
/atom/movable/proc/transfer_observers_to(atom/movable/target)
if(orbiters)
for(var/thing in orbiters)
var/datum/orbit/O = thing
if(O.orbiter && isobserver(O.orbiter))
var/mob/dead/observer/D = O.orbiter
D.ManualFollow(target)
*/

View File

@@ -0,0 +1,18 @@
/datum/wires/tesla_coil
wire_count = 1
holder_type = /obj/machinery/power/tesla_coil
var/const/WIRE_ZAP = 1
/datum/wires/tesla_coil/CanUse(mob/living/L)
var/obj/machinery/power/tesla_coil/T = holder
if(T && T.panel_open)
return 1
return 0
/datum/wires/tesla_coil/UpdatePulsed(index)
var/obj/machinery/power/tesla_coil/T = holder
switch(index)
if(WIRE_ZAP)
T.zap()
..()

View File

@@ -65,15 +65,16 @@ var/global/list/PDA_Manifest = list()
/datum/datacore/proc/get_manifest_list()
if(PDA_Manifest.len)
return
var/heads[0]
var/sec[0]
var/eng[0]
var/med[0]
var/sci[0]
var/car[0]
var/civ[0]
var/bot[0]
var/misc[0]
var/list/heads = list()
var/list/sec = list()
var/list/eng = list()
var/list/med = list()
var/list/sci = list()
var/list/car = list()
var/list/pla = list() // Planetside crew: Explorers, Pilots, S&S
var/list/civ = list()
var/list/bot = list()
var/list/misc = list()
for(var/datum/data/record/t in data_core.general)
var/name = sanitize(t.fields["name"])
var/rank = sanitize(t.fields["rank"])
@@ -113,6 +114,10 @@ var/global/list/PDA_Manifest = list()
if(depthead && sci.len != 1)
sci.Swap(1,sci.len)
if(real_rank in planet_positions)
pla[++pla.len] = list("name" = name, "rank" = rank, "active" = isactive)
department = 1
if(real_rank in cargo_positions)
car[++car.len] = list("name" = name, "rank" = rank, "active" = isactive)
department = 1
@@ -133,16 +138,17 @@ var/global/list/PDA_Manifest = list()
misc[++misc.len] = list("name" = name, "rank" = rank, "active" = isactive)
PDA_Manifest = list(\
"heads" = heads,\
"sec" = sec,\
"eng" = eng,\
"med" = med,\
"sci" = sci,\
"car" = car,\
"civ" = civ,\
"bot" = bot,\
"misc" = misc\
PDA_Manifest = list(
list("cat" = "Command", "elems" = heads),
list("cat" = "Security", "elems" = sec),
list("cat" = "Engineering", "elems" = eng),
list("cat" = "Medical", "elems" = med),
list("cat" = "Science", "elems" = sci),
list("cat" = "Cargo", "elems" = car),
list("cat" = "Planetside", "elems" = pla),
list("cat" = "Civilian", "elems" = civ),
list("cat" = "Silicon", "elems" = bot),
list("cat" = "Miscellaneous", "elems" = misc)
)
return

View File

@@ -118,6 +118,13 @@ var/list/security_positions = list(
)
var/list/planet_positions = list(
"Explorer",
"Pilot",
"Search and Rescue"
)
var/list/nonhuman_positions = list(
"AI",
"Cyborg",

View File

@@ -317,6 +317,27 @@ Class Procs:
user << "<span class='notice'> [C.name]</span>"
return 1
// Default behavior for wrenching down machines. Supports both delay and instant modes.
/obj/machinery/proc/default_unfasten_wrench(var/mob/user, var/obj/item/weapon/wrench/W, var/time = 0)
if(!istype(W))
return FALSE
if(panel_open)
return FALSE // Close panel first!
playsound(loc, W.usesound, 50, 1)
var/actual_time = W.toolspeed * time
if(actual_time != 0)
user.visible_message( \
"<span class='warning'>\The [user] begins [anchored ? "un" : ""]securing \the [src].</span>", \
"<span class='notice'>You start [anchored ? "un" : ""]securing \the [src].</span>")
if(actual_time == 0 || do_after(user, actual_time, target = src))
user.visible_message( \
"<span class='warning'>\The [user] has [anchored ? "un" : ""]secured \the [src].</span>", \
"<span class='notice'>You [anchored ? "un" : ""]secure \the [src].</span>")
anchored = !anchored
power_change() //Turn on or off the machine depending on the status of power in the new area.
update_icon()
return TRUE
/obj/machinery/proc/default_deconstruction_crowbar(var/mob/user, var/obj/item/weapon/crowbar/C)
if(!istype(C))
return 0

View File

@@ -326,3 +326,28 @@ var/global/list/obj/item/device/communicator/all_communicators = list()
..()
client_huds |= global_hud.whitense
client_huds |= global_hud.darkMask
//It's the 26th century. We should have smart watches by now.
/obj/item/device/communicator/watch
name = "communicator watch"
desc = "A personal device used to enable long range dialog between two people, utilizing existing telecommunications infrastructure to allow \
communications across different stations, planets, or even star systems. You can wear this one on your wrist!"
icon = 'icons/obj/device.dmi'
icon_state = "commwatch"
slot_flags = SLOT_GLOVES
/obj/item/device/communicator/watch/update_icon()
if(video_source)
icon_state = "commwatch-video"
return
if(voice_mobs.len || communicating.len)
icon_state = "commwatch-active"
return
if(alert_called)
icon_state = "commwatch-called"
return
icon_state = initial(icon_state)

View File

@@ -96,7 +96,7 @@
name = "machete"
desc = "A sharp machete often found in survival kits."
icon_state = "machete"
force_divisor = 0.3 // 20 when hardness 60 (steel)
force_divisor = 0.3 // 18 when hardness 60 (steel)
attack_verb = list("slashed", "chopped", "gouged", "ripped", "cut")
var/should_cleave = TRUE //Now hatchets inherit from the machete, and thus knives. Tables turned.

View File

@@ -57,13 +57,14 @@
hits = initial(hits)
..()
// These probably shouldn't inherit from hatchets.
// These no longer inherit from hatchets.
/obj/item/weapon/material/knife/tacknife
name = "tactical knife"
desc = "You'd be killing loads of people if this was Medal of Valor: Heroes of Space."
icon = 'icons/obj/weapons.dmi'
icon_state = "tacknife"
item_state = "knife"
force_divisor = 0.25 //15 when hardness 60 (steel)
attack_verb = list("stabbed", "chopped", "cut")
applies_material_colour = 1

View File

@@ -149,7 +149,7 @@
force = 10
w_class = ITEMSIZE_LARGE
slot_flags = SLOT_BACK
force_divisor = 0.75 // 22 when wielded with hardness 15 (glass)
force_divisor = 0.5 // 15 when wielded with hardness 15 (glass)
unwielded_force_divisor = 0.375
thrown_force_divisor = 1.5 // 20 when thrown with weight 15 (glass)
throw_speed = 3

View File

@@ -29,6 +29,8 @@
new /obj/item/clothing/under/rank/security2(src)
new /obj/item/clothing/under/rank/security2(src)
new /obj/item/clothing/under/rank/security2(src)
new /obj/item/clothing/under/rank/security/skirt(src)
new /obj/item/clothing/under/rank/security/skirt(src)
new /obj/item/clothing/shoes/boots/jackboots(src)
new /obj/item/clothing/shoes/boots/jackboots(src)
new /obj/item/clothing/shoes/boots/jackboots(src)

View File

@@ -17,7 +17,7 @@
/obj/structure/janitorialcart/New()
create_reagents(100)
create_reagents(300)
/obj/structure/janitorialcart/examine(mob/user)
@@ -178,7 +178,7 @@
/obj/structure/bed/chair/janicart/New()
create_reagents(100)
create_reagents(300)
update_layer()

View File

@@ -12,18 +12,18 @@
/obj/structure/mopbucket/New()
create_reagents(100)
create_reagents(300)
..()
/obj/structure/mopbucket/examine(mob/user)
if(..(user, 1))
user << "[src] \icon[src] contains [reagents.total_volume] unit\s of water!"
to_chat(user, "[src] \icon[src] contains [reagents.total_volume] unit\s of water!")
/obj/structure/mopbucket/attackby(obj/item/I, mob/user)
if(istype(I, /obj/item/weapon/mop) || istype(I, /obj/item/weapon/soap) || istype(I, /obj/item/weapon/reagent_containers/glass/rag)) //VOREStation Edit - "Allows soap and rags to be used on mopbuckets"
if(reagents.total_volume < 1)
user << "<span class='warning'>\The [src] is out of water!</span>"
to_chat(user, "<span class='warning'>\The [src] is out of water!</span>")
else
reagents.trans_to_obj(I, 5)
user << "<span class='notice'>You wet \the [I] in \the [src].</span>"
to_chat(user, "<span class='notice'>You wet \the [I] in \the [src].</span>")
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)

View File

@@ -517,11 +517,15 @@
E.state = 2
E.connect_to_network()
E.active = TRUE
for(var/obj/machinery/field_generator/F in world)
if(istype(get_area(F), /area/space))
F.Varedit_start = 1
for(var/obj/machinery/power/grounding_rod/GR in world)
GR.anchored = TRUE
GR.update_icon()
for(var/obj/machinery/power/tesla_coil/TC in world)
TC.anchored = TRUE
TC.update_icon()
for(var/obj/structure/particle_accelerator/PA in world)
PA.anchored = TRUE
PA.construction_state = 3
@@ -531,25 +535,6 @@
PA.construction_state = 3
PA.update_icon()
spawn(30)
for(var/obj/machinery/the_singularitygen/G in world)
if(G.anchored)
var/obj/singularity/S = new /obj/singularity(get_turf(G), 50)
spawn(0)
qdel(G)
S.energy = 1750
S.current_size = 7
S.icon = 'icons/effects/224x224.dmi'
S.icon_state = "singularity_s7"
S.pixel_x = -96
S.pixel_y = -96
S.grav_pull = 0
//S.consume_range = 3
S.dissipate = 0
//S.dissipate_delay = 10
//S.dissipate_track = 0
//S.dissipate_strength = 10
for(var/obj/machinery/power/rad_collector/Rad in world)
if(Rad.anchored)
if(!Rad.P)

View File

@@ -9,10 +9,19 @@
path = /obj/item/weapon/clipboard
/datum/gear/utility/communicator
display_name = "personal communicator"
display_name = "communicator selection"
path = /obj/item/device/communicator
cost = 0
display_name = "communicator watch"
/datum/gear/utility/communicator/New()
..()
var/list/communicators = list()
for(var/communicator in typesof(/obj/item/device/communicator) - list(/obj/item/device/communicator/integrated))
var/obj/item/device/communicator_type = communicator
communicators[initial(communicator_type.name)] = communicator_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(communicators))
/datum/gear/utility/camera
display_name = "camera"
path = /obj/item/device/camera

View File

@@ -191,7 +191,7 @@ BLIND // can't see anything
vision_flags = SEE_OBJS
enables_planes = list(VIS_FULLBRIGHT)
/obj/item/clothing/glasses/material/New() //VOREStation Edit - There's a Polaris PR for this. Maybe they'll accept someday.
/obj/item/clothing/glasses/material/New()
..()
overlay = global_hud.material

View File

@@ -125,6 +125,42 @@
siemens_coefficient = 0.9
body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/mask/shark
name = "shark mask"
desc = "A rubber shark mask."
icon_state = "shark"
flags_inv = HIDEFACE
w_class = ITEMSIZE_SMALL
siemens_coefficient = 0.9
body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/mask/dolphin
name = "dolphin mask"
desc = "A rubber dolphin mask."
icon_state = "dolphin"
flags_inv = HIDEFACE
w_class = ITEMSIZE_SMALL
siemens_coefficient = 0.9
body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/mask/goblin
name = "goblin mask"
desc = "A rubber goblin mask."
icon_state = "goblin"
flags_inv = HIDEFACE
w_class = ITEMSIZE_SMALL
siemens_coefficient = 0.9
body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/mask/demon
name = "demon mask"
desc = "A rubber demon mask."
icon_state = "demon"
flags_inv = HIDEFACE
w_class = ITEMSIZE_SMALL
siemens_coefficient = 0.9
body_parts_covered = HEAD|FACE|EYES
/obj/item/clothing/mask/horsehead
name = "horse head mask"
desc = "A mask made of soft vinyl and latex, representing the head of a horse."

View File

@@ -1,6 +1,6 @@
/obj/item/clothing/accessory/locket
name = "silver locket"
desc = "This oval shaped, argentium sterling silver locket hangs on an incredibly fine, refractive string, almost thin as hair and microweaved from links to a deceptive strength, of similar material. The edges are engraved very delicately with an elegant curving design, but overall the main is unmarked and smooth to the touch, leaving room for either remaining as a stolid piece or future alterations. There is an obvious internal place for a picture or lock of some sort, but even behind that is a very thin compartment unhinged with the pinch of a thumb and forefinger."
desc = "A small locket of high-quality metal."
icon_state = "locket"
slot_flags = 0
w_class = ITEMSIZE_SMALL

View File

@@ -245,7 +245,7 @@
seed_name = "apple"
display_name = "apple tree"
mutants = list("poisonapple","goldapple")
chems = list("nutriment" = list(1,10))
chems = list("nutriment" = list(1,10),"applejuice" = list(10,20))
kitchen_tag = "apple"
/datum/seed/apple/New()

View File

@@ -208,7 +208,7 @@ Please contact me on #coderbus IRC. ~Carn x
M.Scale(desired_scale)
M.Translate(1,-6)
ma.transform = M
ma.layer = MOB_LAYER -0.1 // Fix for a byond bug where turf entry order no longer matters
ma.layer = MOB_LAYER -0.01 // Fix for a byond bug where turf entry order no longer matters
else
var/matrix/M = matrix()
M.Scale(desired_scale)

View File

@@ -138,6 +138,14 @@
..()
return
// Power machinery should also connect/disconnect from the network.
/obj/machinery/power/default_unfasten_wrench(var/mob/user, var/obj/item/weapon/wrench/W, var/time = 20)
if((. = ..()))
if(anchored)
connect_to_network()
else
disconnect_from_network()
// Used for power spikes by the engine, has specific effects on different machines.
/obj/machinery/power/proc/overload(var/obj/machinery/power/source)
return

View File

@@ -8,11 +8,12 @@
density = 1
use_power = 0
var/energy = 0
var/creation_type = /obj/singularity
/obj/machinery/the_singularitygen/process()
var/turf/T = get_turf(src)
if(src.energy >= 200)
new /obj/singularity/(T, 50)
new creation_type(T, 50)
if(src) qdel(src)
/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user)

View File

@@ -29,15 +29,11 @@
var/chained = 0//Adminbus chain-grab
/obj/singularity/New(loc, var/starting_energy = 50, var/temp = 0)
/obj/singularity/New(loc, var/starting_energy = 50)
//CARN: admin-alert for chuckle-fuckery.
admin_investigate_setup()
energy = starting_energy
if (temp)
spawn (temp)
qdel(src)
..()
processing_objects += src
for(var/obj/machinery/power/singularity_beacon/singubeacon in machines)

View File

@@ -0,0 +1,133 @@
/obj/machinery/power/tesla_coil
name = "tesla coil"
desc = "For the union!"
icon = 'icons/obj/tesla_engine/tesla_coil.dmi'
icon_state = "coil0"
anchored = FALSE
density = TRUE
// Executing a traitor caught releasing tesla was never this fun!
can_buckle = TRUE
buckle_lying = FALSE
circuit = /obj/item/weapon/circuitboard/tesla_coil
var/power_loss = 2
var/input_power_multiplier = 1
var/zap_cooldown = 100
var/last_zap = 0
var/datum/wires/tesla_coil/wires = null
/obj/machinery/power/tesla_coil/New()
..()
wires = new(src)
/obj/machinery/power/tesla_coil/initialize()
. = ..()
default_apply_parts()
/obj/machinery/power/tesla_coil/Destroy()
qdel_null(wires)
return ..()
/obj/machinery/power/tesla_coil/RefreshParts()
var/power_multiplier = 0
zap_cooldown = 100
for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts)
power_multiplier += C.rating
zap_cooldown -= (C.rating * 20)
input_power_multiplier = power_multiplier
/obj/machinery/power/tesla_coil/update_icon()
if(panel_open)
icon_state = "coil_open[anchored]"
else
icon_state = "coil[anchored]"
/obj/machinery/power/tesla_coil/attackby(obj/item/W, mob/user, params)
src.add_fingerprint(user)
//if(default_deconstruction_screwdriver(user, "coil_open[anchored]", "coil[anchored]", W))
if(default_deconstruction_screwdriver(user, W))
return
if(default_part_replacement(user, W))
return
if(default_unfasten_wrench(user, W))
return
if(default_deconstruction_crowbar(user, W))
return
if(is_wire_tool(W))
return wires.Interact(user)
return ..()
/obj/machinery/power/tesla_coil/attack_hand(mob/user)
if(user.a_intent == I_GRAB && user_buckle_mob(user.pulling, user))
return
..()
/obj/machinery/power/tesla_coil/tesla_act(var/power)
if(anchored && !panel_open)
being_shocked = TRUE
//don't lose arc power when it's not connected to anything
//please place tesla coils all around the station to maximize effectiveness
var/power_produced = powernet ? power / power_loss : power
add_avail(power_produced*input_power_multiplier)
flick("coilhit", src)
playsound(src.loc, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 5, power_produced)
//addtimer(CALLBACK(src, .proc/reset_shocked), 10)
spawn(10) reset_shocked()
else
..()
/obj/machinery/power/tesla_coil/proc/zap()
if((last_zap + zap_cooldown) > world.time || !powernet)
return FALSE
last_zap = world.time
var/coeff = (20 - ((input_power_multiplier - 1) * 3))
coeff = max(coeff, 10)
var/power = (powernet.avail/2)
draw_power(power)
playsound(src.loc, 'sound/effects/lightningshock.ogg', 100, 1, extrarange = 5)
tesla_zap(src, 10, power/(coeff/2))
/obj/machinery/power/grounding_rod
name = "grounding rod"
desc = "Keep an area from being fried from Edison's Bane."
icon = 'icons/obj/tesla_engine/tesla_coil.dmi'
icon_state = "grounding_rod0"
anchored = FALSE
density = TRUE
can_buckle = TRUE
buckle_lying = FALSE
/obj/machinery/power/grounding_rod/update_icon()
if(panel_open)
icon_state = "grounding_rod_open[anchored]"
else
icon_state = "grounding_rod[anchored]"
/obj/machinery/power/grounding_rod/attackby(obj/item/W, mob/user, params)
//if(default_deconstruction_screwdriver(user, "grounding_rod_open[anchored]", "grounding_rod[anchored]", W))
if(default_deconstruction_screwdriver(user, W))
return
if(default_part_replacement(user, W))
return
if(default_unfasten_wrench(user, W))
return
if(default_deconstruction_crowbar(user, W))
return
return ..()
/obj/machinery/power/grounding_rod/attack_hand(mob/user)
if(user.a_intent == I_GRAB && user_buckle_mob(user.pulling, user))
return
..()
/obj/machinery/power/grounding_rod/tesla_act(var/power)
if(anchored && !panel_open)
flick("grounding_rodhit", src)
else
..()

View File

@@ -0,0 +1,298 @@
#define TESLA_DEFAULT_POWER 1738260
#define TESLA_MINI_POWER 869130
/obj/singularity/energy_ball
name = "energy ball"
desc = "An energy ball."
icon = 'icons/obj/tesla_engine/energy_ball.dmi'
icon_state = "energy_ball"
pixel_x = -32
pixel_y = -32
current_size = STAGE_TWO
move_self = 1
grav_pull = 0
contained = 0
density = TRUE
energy = 0
dissipate = 1
dissipate_delay = 5
dissipate_strength = 1
var/list/orbiting_balls = list()
var/miniball = FALSE
var/produced_power
var/energy_to_raise = 32
var/energy_to_lower = -20
/obj/singularity/energy_ball/New(loc, starting_energy = 50, is_miniball = FALSE)
..()
miniball = is_miniball
/obj/singularity/energy_ball/initialize()
. = ..()
if(!miniball)
set_light(10, 7, "#EEEEFF")
/obj/singularity/energy_ball/ex_act(severity, target)
return
/obj/singularity/energy_ball/Destroy()
if(orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball))
var/obj/singularity/energy_ball/EB = orbiting.orbiting
EB.orbiting_balls -= src
for(var/ball in orbiting_balls)
var/obj/singularity/energy_ball/EB = ball
qdel(EB)
. = ..()
/obj/singularity/energy_ball/admin_investigate_setup()
if(miniball)
return //don't annnounce miniballs
..()
/obj/singularity/energy_ball/process(var/wait = 20)
set waitfor = FALSE
if(!orbiting)
handle_energy()
move_the_basket_ball(max(wait - 5, 4 + orbiting_balls.len * 1.5))
playsound(src.loc, 'sound/effects/lightningbolt.ogg', 100, 1, extrarange = 30)
set_dir(tesla_zap(src.loc, 7, TESLA_DEFAULT_POWER, TRUE))
for (var/ball in orbiting_balls)
var/range = rand(1, Clamp(orbiting_balls.len, 3, 7))
tesla_zap(ball, range, TESLA_MINI_POWER/7*range, TRUE)
else
energy = 0 // ensure we dont have miniballs of miniballs
/obj/singularity/energy_ball/examine(mob/user)
..()
if(orbiting_balls.len)
to_chat(user, "The amount of orbiting mini-balls is [orbiting_balls.len].")
/obj/singularity/energy_ball/proc/move_the_basket_ball(var/move_amount)
//we face the last thing we zapped, so this lets us favor that direction a bit
var/move_bias = dir
for(var/i in 0 to move_amount)
var/move_dir = pick(global.alldirs + move_bias) //ensures large-ball teslas don't just sit around
if(target && prob(10))
move_dir = get_dir(src,target)
var/turf/T = get_step(src, move_dir)
if(can_move(T))
forceMove(T)
set_dir(move_dir)
for(var/mob/living/carbon/C in loc)
dust_mobs(C)
sleep(1) // So movement is smooth
/obj/singularity/energy_ball/proc/handle_energy()
if(energy >= energy_to_raise)
energy_to_lower = energy_to_raise - 20
energy_to_raise = energy_to_raise * 1.25
playsound(src.loc, 'sound/effects/lightning_chargeup.ogg', 100, 1, extrarange = 30)
//addtimer(CALLBACK(src, .proc/new_mini_ball), 100)
spawn(100) new_mini_ball()
else if(energy < energy_to_lower && orbiting_balls.len)
energy_to_raise = energy_to_raise / 1.25
energy_to_lower = (energy_to_raise / 1.25) - 20
var/Orchiectomy_target = pick(orbiting_balls)
qdel(Orchiectomy_target)
else if(orbiting_balls.len)
dissipate() //sing code has a much better system.
/obj/singularity/energy_ball/proc/new_mini_ball()
if(!loc)
return
var/obj/singularity/energy_ball/EB = new(loc, 0, TRUE)
EB.transform *= pick(0.3, 0.4, 0.5, 0.6, 0.7)
var/icon/I = icon(icon,icon_state,dir)
var/orbitsize = (I.Width() + I.Height()) * pick(0.4, 0.5, 0.6, 0.7, 0.8)
orbitsize -= (orbitsize / world.icon_size) * (world.icon_size * 0.25)
EB.orbit(src, orbitsize, pick(FALSE, TRUE), rand(10, 25), pick(3, 4, 5, 6, 36))
/obj/singularity/energy_ball/Bump(atom/A)
dust_mobs(A)
/obj/singularity/energy_ball/Bumped(atom/movable/AM)
dust_mobs(AM)
/obj/singularity/energy_ball/orbit(obj/singularity/energy_ball/target)
if (istype(target))
target.orbiting_balls += src
//TODO-LESH-DEL global.poi_list -= src
target.dissipate_strength = target.orbiting_balls.len
. = ..()
/obj/singularity/energy_ball/stop_orbit()
if (orbiting && istype(orbiting.orbiting, /obj/singularity/energy_ball))
var/obj/singularity/energy_ball/orbitingball = orbiting.orbiting
orbitingball.orbiting_balls -= src
orbitingball.dissipate_strength = orbitingball.orbiting_balls.len
..()
if (!loc && !QDELETED(src))
qdel(src)
/obj/singularity/energy_ball/proc/dust_mobs(atom/A)
if(isliving(A))
var/mob/living/L = A
if(L.incorporeal_move)
return
if(!iscarbon(A))
return
for(var/obj/machinery/power/grounding_rod/GR in orange(src, 2))
if(GR.anchored)
return
var/mob/living/carbon/C = A
// C.dust() - Changing to do fatal elecrocution instead
C.electrocute_act(500, src, def_zone = BP_TORSO)
/proc/tesla_zap(atom/source, zap_range = 3, power, explosive = FALSE, stun_mobs = TRUE)
. = source.dir
if(power < 1000)
return
var/closest_dist = 0
var/closest_atom
var/obj/machinery/power/tesla_coil/closest_tesla_coil
var/obj/machinery/power/grounding_rod/closest_grounding_rod
var/mob/living/closest_mob
var/obj/machinery/closest_machine
var/obj/structure/closest_structure
var/obj/structure/blob/closest_blob
var/static/things_to_shock = typecacheof(list(/obj/machinery, /mob/living, /obj/structure))
var/static/blacklisted_tesla_types = typecacheof(list(
/obj/machinery/atmospherics,
/obj/machinery/power/emitter,
/obj/machinery/field_generator,
/mob/living/simple_animal,
/obj/machinery/door/blast,
/obj/machinery/particle_accelerator/control_box,
/obj/structure/particle_accelerator/fuel_chamber,
/obj/structure/particle_accelerator/particle_emitter/center,
/obj/structure/particle_accelerator/particle_emitter/left,
/obj/structure/particle_accelerator/particle_emitter/right,
/obj/structure/particle_accelerator/power_box,
/obj/structure/particle_accelerator/end_cap,
/obj/machinery/containment_field,
/obj/structure/disposalpipe,
/obj/structure/sign,
/obj/machinery/gateway,
/obj/structure/lattice,
/obj/structure/grille,
/obj/machinery/the_singularitygen/tesla))
for(var/A in typecache_filter_multi_list_exclusion(oview(source, zap_range+2), things_to_shock, blacklisted_tesla_types))
if(istype(A, /obj/machinery/power/tesla_coil))
var/dist = get_dist(source, A)
var/obj/machinery/power/tesla_coil/C = A
if(dist <= zap_range && (dist < closest_dist || !closest_tesla_coil) && !C.being_shocked)
closest_dist = dist
//we use both of these to save on istype and typecasting overhead later on
//while still allowing common code to run before hand
closest_tesla_coil = C
closest_atom = C
else if(closest_tesla_coil)
continue //no need checking these other things
else if(istype(A, /obj/machinery/power/grounding_rod))
var/dist = get_dist(source, A)-2
if(dist <= zap_range && (dist < closest_dist || !closest_grounding_rod))
closest_grounding_rod = A
closest_atom = A
closest_dist = dist
else if(closest_grounding_rod)
continue
else if(isliving(A))
var/dist = get_dist(source, A)
var/mob/living/L = A
if(dist <= zap_range && (dist < closest_dist || !closest_mob) && L.stat != DEAD && !(L.status_flags & GODMODE))
closest_mob = L
closest_atom = A
closest_dist = dist
else if(closest_mob)
continue
else if(istype(A, /obj/machinery))
var/obj/machinery/M = A
var/dist = get_dist(source, A)
if(dist <= zap_range && (dist < closest_dist || !closest_machine) && !M.being_shocked)
closest_machine = M
closest_atom = A
closest_dist = dist
else if(closest_mob)
continue
else if(istype(A, /obj/structure/blob))
var/obj/structure/blob/B = A
var/dist = get_dist(source, A)
if(dist <= zap_range && (dist < closest_dist || !closest_tesla_coil) && !B.being_shocked)
closest_blob = B
closest_atom = A
closest_dist = dist
else if(closest_blob)
continue
else if(istype(A, /obj/structure))
var/obj/structure/S = A
var/dist = get_dist(source, A)
if(dist <= zap_range && (dist < closest_dist || !closest_tesla_coil) && !S.being_shocked)
closest_structure = S
closest_atom = A
closest_dist = dist
//Alright, we've done our loop, now lets see if was anything interesting in range
if(closest_atom)
//common stuff
source.Beam(closest_atom, icon_state="lightning[rand(1,12)]", time=5, maxdistance = INFINITY)
var/zapdir = get_dir(source, closest_atom)
if(zapdir)
. = zapdir
//per type stuff:
if(closest_tesla_coil)
closest_tesla_coil.tesla_act(power, explosive, stun_mobs)
else if(closest_grounding_rod)
closest_grounding_rod.tesla_act(power, explosive, stun_mobs)
else if(closest_mob)
var/shock_damage = Clamp(round(power/400), 10, 90) + rand(-5, 5)
closest_mob.electrocute_act(shock_damage, source, 1/*, tesla_shock = 1, stun = stun_mobs*/)
if(issilicon(closest_mob))
var/mob/living/silicon/S = closest_mob
if(stun_mobs)
S.emp_act(3 /*EMP_LIGHT*/)
tesla_zap(closest_mob, 7, power / 1.5, explosive, stun_mobs) // metallic folks bounce it further
else
tesla_zap(closest_mob, 5, power / 1.5, explosive, stun_mobs)
else if(closest_machine)
closest_machine.tesla_act(power, explosive, stun_mobs)
else if(closest_blob)
closest_blob.tesla_act(power, explosive, stun_mobs)
else if(closest_structure)
closest_structure.tesla_act(power, explosive, stun_mobs)

View File

@@ -0,0 +1,10 @@
/obj/machinery/the_singularitygen/tesla
name = "energy ball generator"
desc = "Makes the wardenclyffe look like a child's plaything when shot with a particle accelerator."
icon = 'icons/obj/tesla_engine/tesla_generator.dmi'
icon_state = "TheSingGen"
creation_type = /obj/singularity/energy_ball
/obj/machinery/the_singularitygen/tesla/tesla_act(power, explosive = FALSE)
if(explosive)
energy += power

View File

@@ -0,0 +1,31 @@
//////////////////////////
// Circuits and Research
//////////////////////////
// Tesla coils are built as machines using a circuit researchable in RnD
/obj/item/weapon/circuitboard/tesla_coil
name = T_BOARD("tesla coil")
build_path = /obj/machinery/power/tesla_coil
board_type = new /datum/frame/frame_types/machine
origin_tech = list(TECH_MAGNET = 2, TECH_POWER = 4)
req_components = list(/obj/item/weapon/stock_parts/capacitor = 1)
/datum/design/circuit/tesla_coil
name = "Machine Design (Tesla Coil Board)"
desc = "The circuit board for a tesla coil."
id = "tesla_coil"
build_path = /obj/item/weapon/circuitboard/tesla_coil
req_tech = list(TECH_MAGNET = 2, TECH_POWER = 4)
sort_string = "MAAAC"
// Grounding rods can be built as machines using a circuit made in an autolathe.
/obj/item/weapon/circuitboard/grounding_rod
name = T_BOARD("grounding rod")
build_path = /obj/machinery/power/grounding_rod
board_type = new /datum/frame/frame_types/machine
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
req_components = list()
/datum/category_item/autolathe/engineering/grounding_rod
name = "grounding rod electronics"
path = /obj/item/weapon/circuitboard/grounding_rod

View File

@@ -0,0 +1,68 @@
////////////////////////////////////////
// Vars and Default tesla_act behavior
////////////////////////////////////////
/obj
var/being_shocked = FALSE
/obj/proc/tesla_act(var/power)
being_shocked = TRUE
var/power_bounced = power / 2
tesla_zap(src, 3, power_bounced)
//addtimer(CALLBACK(src, .proc/reset_shocked), 10)
//schedule_task_with_source_in(10, src, .proc/reset_shocked)
spawn(10) reset_shocked()
/obj/proc/reset_shocked()
being_shocked = FALSE
// Overrides for behavior on specific types
/obj/structure/blob/tesla_act(power)
..()
adjust_integrity(-power/400)
/obj/machinery/nuclearbomb/tesla_act(power, explosive)
..()
if(explosive)
qdel(src)//like the singulo, tesla deletes it. stops it from exploding over and over
/obj/machinery/tesla_act(power, explosive = FALSE)
..()
if(prob(85) && explosive)
explosion(loc, 1, 2, 4, /*flame_range = 2,*/ adminlog = FALSE/*, smoke = FALSE*/)
else if(prob(50))
emp_act(2)
else
ex_act(2)
/obj/machinery/camera/tesla_act(var/power)//EMP proof upgrade also makes it tesla immune
if(isEmpProof())
return
..()
qdel(src) //to prevent bomb testing camera from exploding over and over forever
/obj/machinery/light/tesla_act(power, explosive = FALSE)
if(explosive)
explosion(loc, 0, 0, 0/*, flame_range = 5*/, adminlog = FALSE)
qdel(src)
/obj/structure/closet/tesla_act(var/power)
..() //extend the zap
visible_message("<span class='danger'>[src] is blown apart by the bolt of electricity!</span>", "<span class='danger'>You hear a metallic screeching sound.</span>")
dump_contents()
qdel(src)
/obj/structure/reagent_dispensers/fueltank/tesla_act()
..() //extend the zap
explode()

View File

@@ -524,6 +524,17 @@
glass_name = "lemon juice"
glass_desc = "Sour..."
/datum/reagent/drink/juice/apple
name = "Apple Juice"
id = "applejuice"
description = "The most basic juice."
taste_description = "crispness"
taste_mult = 1.1
color = "#E2A55F"
glass_name = "apple juice"
glass_desc = "An earth favorite."
/datum/reagent/drink/juice/lime
name = "Lime Juice"
id = "limejuice"

View File

@@ -90,6 +90,9 @@ Drinks Data
/datum/reagent/drink/juice/lemon
glass_icon_state = "lemonjuice"
/datum/reagent/drink/juice/apple
glass_icon_state = "applejuice"
/datum/reagent/drink/juice/lime
glass_icon_state = "glass_green"

View File

@@ -19,6 +19,8 @@
var/label_text = ""
var/list/prefill = null //Reagents to fill the container with on New(), formatted as "reagentID" = quantity
var/list/can_be_placed_into = list(
/obj/machinery/chem_master/,
/obj/machinery/chemical_dispenser,
@@ -47,6 +49,11 @@
/obj/item/weapon/reagent_containers/glass/New()
..()
if(LAZYLEN(prefill))
for(var/R in prefill)
reagents.add_reagent(R,prefill[R])
prefill = null
update_icon()
base_name = name
base_desc = desc
@@ -222,18 +229,14 @@
volume = 30
w_class = ITEMSIZE_TINY
amount_per_transfer_from_this = 10
possible_transfer_amounts = list(5,10,15,25)
possible_transfer_amounts = list(5,10,15,30)
flags = OPENCONTAINER
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone/New()
..()
reagents.add_reagent("cryoxadone", 30)
update_icon()
/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone
prefill = list("cryoxadone" = 30)
/obj/item/weapon/reagent_containers/glass/beaker/sulphuric/New()
..()
reagents.add_reagent("sacid", 60)
update_icon()
/obj/item/weapon/reagent_containers/glass/beaker/sulphuric
prefill = list("sacid" = 60)
/obj/item/weapon/reagent_containers/glass/bucket
desc = "It's a bucket."

View File

@@ -61,11 +61,7 @@
desc = "A small bottle. Contains inaprovaline - used to stabilize patients."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline/New()
..()
reagents.add_reagent("inaprovaline", 60)
update_icon()
prefill = list("inaprovaline" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/toxin
@@ -73,11 +69,7 @@
desc = "A small bottle of toxins. Do not drink, it is poisonous."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-3"
/obj/item/weapon/reagent_containers/glass/bottle/toxin/New()
..()
reagents.add_reagent("toxin", 60)
update_icon()
prefill = list("toxin" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/cyanide
@@ -85,23 +77,15 @@
desc = "A small bottle of cyanide. Bitter almonds?"
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-3"
prefill = list("cyanide" = 30) //volume changed to match chloral
/obj/item/weapon/reagent_containers/glass/bottle/cyanide/New()
..()
reagents.add_reagent("cyanide", 30) //volume changed to match chloral
update_icon()
/obj/item/weapon/reagent_containers/glass/bottle/stoxin
name = "soporific bottle"
desc = "A small bottle of soporific. Just the fumes make you sleepy."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-3"
/obj/item/weapon/reagent_containers/glass/bottle/stoxin/New()
..()
reagents.add_reagent("stoxin", 60)
update_icon()
prefill = list("stoxin" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate
@@ -109,11 +93,7 @@
desc = "A small bottle of Choral Hydrate. Mickey's Favorite!"
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-3"
/obj/item/weapon/reagent_containers/glass/bottle/chloralhydrate/New()
..()
reagents.add_reagent("chloralhydrate", 30) //Intentionally low since it is so strong. Still enough to knock someone out.
update_icon()
prefill = list("chloralhydrate" = 30) //Intentionally low since it is so strong. Still enough to knock someone out.
/obj/item/weapon/reagent_containers/glass/bottle/antitoxin
@@ -121,11 +101,7 @@
desc = "A small bottle of dylovene. Counters poisons, and repairs damage. A wonder drug."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/antitoxin/New()
..()
reagents.add_reagent("anti_toxin", 60)
update_icon()
prefill = list("anti_toxin" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/mutagen
@@ -133,11 +109,7 @@
desc = "A small bottle of unstable mutagen. Randomly changes the DNA structure of whoever comes in contact."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-1"
/obj/item/weapon/reagent_containers/glass/bottle/mutagen/New()
..()
reagents.add_reagent("mutagen", 60)
update_icon()
prefill = list("mutagen" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/ammonia
@@ -145,11 +117,7 @@
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-1"
/obj/item/weapon/reagent_containers/glass/bottle/ammonia/New()
..()
reagents.add_reagent("ammonia", 60)
update_icon()
prefill = list("ammonia" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/eznutrient
@@ -157,11 +125,7 @@
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/eznutrient/New()
..()
reagents.add_reagent("eznutrient", 60)
update_icon()
prefill = list("eznutrient" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/left4zed
@@ -169,11 +133,7 @@
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/left4zed/New()
..()
reagents.add_reagent("left4zed", 60)
update_icon()
prefill = list("left4zed" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/robustharvest
@@ -181,11 +141,7 @@
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/robustharvest/New()
..()
reagents.add_reagent("robustharvest", 60)
update_icon()
prefill = list("robustharvest" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/diethylamine
@@ -193,23 +149,14 @@
desc = "A small bottle."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/diethylamine/New()
..()
reagents.add_reagent("diethylamine", 60)
update_icon()
prefill = list("diethylamine" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/pacid
name = "Polytrinic Acid Bottle"
desc = "A small bottle. Contains a small amount of Polytrinic Acid"
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/pacid/New()
..()
reagents.add_reagent("pacid", 60)
update_icon()
prefill = list("pacid" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/adminordrazine
@@ -217,12 +164,7 @@
desc = "A small bottle. Contains the liquid essence of the gods."
icon = 'icons/obj/drinks.dmi'
icon_state = "holyflask"
/obj/item/weapon/reagent_containers/glass/bottle/adminordrazine/New()
..()
reagents.add_reagent("adminordrazine", 60)
update_icon()
prefill = list("adminordrazine" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/capsaicin
@@ -230,11 +172,7 @@
desc = "A small bottle. Contains hot sauce."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/capsaicin/New()
..()
reagents.add_reagent("capsaicin", 60)
update_icon()
prefill = list("capsaicin" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/frostoil
@@ -242,8 +180,4 @@
desc = "A small bottle. Contains cold sauce."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/frostoil/New()
..()
reagents.add_reagent("frostoil", 60)
update_icon()
prefill = list("frostoil" = 60)

View File

@@ -13,11 +13,7 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
reagent = "inaprovaline"
/obj/item/weapon/reagent_containers/glass/bottle/robot/inaprovaline/New()
..()
reagents.add_reagent("inaprovaline", 60)
update_icon()
prefill = list("inaprovaline" = 60)
/obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin
@@ -26,9 +22,4 @@
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
reagent = "anti_toxin"
/obj/item/weapon/reagent_containers/glass/bottle/robot/antitoxin/New()
..()
reagents.add_reagent("anti_toxin", 60)
update_icon()
prefill = list("anti_toxin" = 60)

View File

@@ -141,11 +141,7 @@
desc = "A small bottle. Contains some really weird liquid metal."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/metamorphic/New()
..()
reagents.add_reagent("metamorphic", 60)
update_icon()
prefill = list("metamorphic" = 60)
// This is kind of a waste since iron is in the chem dispenser but it would be inconsistent if this wasn't here.
@@ -216,11 +212,7 @@
desc = "A small bottle. Contains some really weird liquid metal."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle-4"
/obj/item/weapon/reagent_containers/glass/bottle/binding/New()
..()
reagents.add_reagent("binding", 60)
update_icon()
prefill = list("binding" = 60)
/datum/chemical_reaction/binding

View File

@@ -0,0 +1,6 @@
author: Leshana
delete-after: True
- soundadd: "Sounds of Tesla engine lighting bolts"
- imageadd: "Sprites for grounding rod and Tesla coil"
- imageadd: "Sprites for lighting bolts"
- rscadd: "The Tesla Engine, Tesla Coils, and Grounding Rods"

View File

@@ -0,0 +1,4 @@
author: Leshana
delete-after: True
changes:
- rscadd: "Wiki search URL is now configurable in config.txt"

View File

@@ -0,0 +1,5 @@
author: battlefieldCommander
delete-after: True
changes:
- rscadd: "Adds a communicator watch, a variant of the communicator you can wear on your wrist."
- rscadd: "Replaces the communicator in the loadout with a communicator selection. Choose either the traditional communicator, or the new commwatch."

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

View File

@@ -64,7 +64,7 @@
)
/datum/shuttle_destination/ninja/outside_SC_3d
name = "NLS Southern Cross - Starboard of Third Deck"
name = "NLS Southern Cross - Port of Third Deck"
my_area = /area/ninja_dojo/thirddeck
preferred_interim_area = /area/ninja_dojo/transit

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -156,7 +156,7 @@
"cZ" = (/obj/machinery/light/small{dir = 1},/obj/effect/floor_decal/industrial/warning/dust{tag = "icon-warning_dust (EAST)"; icon_state = "warning_dust"; dir = 4},/turf/simulated/floor/tiled{tag = "icon-asteroidfloor"; icon_state = "asteroidfloor"},/area/surface/outpost/mining_main/cave)
"da" = (/obj/machinery/newscaster{pixel_x = -30; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
"db" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
"dc" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
"dc" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/medical)
"dd" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/effect/floor_decal/corner/purple{dir = 1},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
"de" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
"df" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/effect/floor_decal/corner/purple{dir = 6},/turf/simulated/floor/tiled/neutral,/area/surface/outpost/research/xenoarcheology)
@@ -363,7 +363,7 @@
"gY" = (/obj/effect/floor_decal/corner/beige{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"gZ" = (/obj/effect/floor_decal/corner/lime{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/camera/network/research_outpost{c_tag = "OPR - Sample Preparation"; dir = 2},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"ha" = (/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"hb" = (/obj/structure/reagent_dispensers/coolanttank,/obj/effect/floor_decal/corner/lime{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"hb" = (/obj/structure/reagent_dispensers/coolanttank,/obj/effect/floor_decal/corner/lime{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"hc" = (/obj/structure/reagent_dispensers/coolanttank,/obj/effect/floor_decal/corner/lime{dir = 5},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 22},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"hd" = (/turf/simulated/wall,/area/surface/outpost/research/xenoarcheology/emergencystorage)
"he" = (/obj/machinery/space_heater,/obj/structure/cable/blue{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/emergencystorage)
@@ -410,7 +410,7 @@
"hT" = (/obj/machinery/status_display{pixel_y = -32},/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
"hU" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/surface/outpost/research/xenoarcheology/smes)
"hV" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder,/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/effect/floor_decal/corner/beige/full,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"hW" = (/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/obj/structure/table/glass,/obj/effect/floor_decal/corner/beige{dir = 10},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"hW" = (/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/obj/structure/table/glass,/obj/effect/floor_decal/corner/beige{dir = 10},/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"hX" = (/obj/structure/table/glass,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/floor_decal/corner/beige/full{dir = 4},/turf/simulated/floor/tiled/white,/area/surface/outpost/research/xenoarcheology/analysis)
"hY" = (/obj/machinery/radiocarbon_spectrometer,/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis)
"hZ" = (/obj/structure/table/glass,/obj/item/stack/nanopaste,/obj/item/stack/nanopaste,/obj/item/stack/nanopaste,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/tiled/dark,/area/surface/outpost/research/xenoarcheology/analysis)
@@ -678,3 +678,4 @@ adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
adaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeidafafafaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaead
adadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadieifififadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadadad
"}

File diff suppressed because it is too large Load Diff

View File

@@ -465,6 +465,10 @@
name = "\improper Auxiliary Engineering Station"
sound_env = SMALL_ENCLOSED
/area/crew_quarters/firstdeck/gym
name = "\improper Station Gym"
icon_state = "fitness"
/area/construction/firstdeck/
name = "\improper Engineering Construction Area"
icon_state = "construction"
@@ -566,15 +570,15 @@
icon_state = "docking_hallway"
/area/hallway/secondary/escape/firstdeck/ep_port
name = "\improper Escape Pod Port"
name = "\improper Large Escape Pod 2 Port"
icon_state = "escape_pod"
/area/hallway/secondary/escape/firstdeck/ep_starboard1
name = "\improper Escape Pod Starboard 1"
name = "\improper Escape Pod 3 Starboard"
icon_state = "escape_pod"
/area/hallway/secondary/escape/firstdeck/ep_starboard2
name = "\improper Escape Pod Starboard 2"
name = "\improper Large Escape Pod 2 Starboard"
icon_state = "escape_pod"
/area/hallway/secondary/escape/firstdeck/ep_aftport
@@ -1132,7 +1136,7 @@ area/crew_quarters/heads/sc/hop/quarters
name = "\improper Hangar Deck"
icon_state = "yellow"
requires_power = 0
dynamic_lighting = 0
dynamic_lighting = 1
flags = RAD_SHIELDED
/area/shuttle/shuttle2/start
@@ -1234,6 +1238,7 @@ area/crew_quarters/heads/sc/hop/quarters
/area/syndicate_station/planet
name = "planetside"
dynamic_lighting = 1
icon_state = "shuttlered"
base_turf = /turf/simulated/floor/outdoors/grass/sif/planetuse
@@ -1259,6 +1264,7 @@ area/crew_quarters/heads/sc/hop/quarters
/area/syndicate_station/arrivals_dock
name = "\improper docked with Southern Cross"
dynamic_lighting = 0
icon_state = "shuttle"
//Skipjack
@@ -1375,6 +1381,7 @@ area/crew_quarters/heads/sc/hop/quarters
/area/ninja_dojo/arrivals_dock
name = "\improper docked with Southern Cross"
icon_state = "shuttle"
dynamic_lighting = 0
//Trade Ship

View File

@@ -2,8 +2,9 @@
* SC Engineering
*/
/obj/structure/closet/secure_closet/engineering_chief/lite
name = "chief engineer's locker"
/obj/structure/closet/secure_closet/engineering_chief_wardrobe
name = "chief engineer's wardrobe"
req_access = list(access_ce)
icon_state = "securece1"
icon_closed = "securece"
@@ -13,41 +14,7 @@
icon_off = "secureceoff"
/obj/structure/closet/secure_closet/engineering_chief/lite/New()
..()
if(prob(50))
new /obj/item/weapon/storage/backpack/industrial(src)
else
new /obj/item/weapon/storage/backpack/satchel/eng(src)
if(prob(50))
new /obj/item/weapon/storage/backpack/dufflebag/eng(src)
new /obj/item/clothing/accessory/storage/brown_vest(src)
new /obj/item/blueprints(src)
new /obj/item/clothing/head/hardhat/white(src)
new /obj/item/clothing/head/welding(src)
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/device/radio/headset/heads/ce(src)
new /obj/item/device/radio/headset/heads/ce/alt(src)
new /obj/item/weapon/storage/toolbox/mechanical(src)
new /obj/item/device/multitool(src)
new /obj/item/weapon/storage/belt/utility/chief/full(src)
new /obj/item/device/flash(src)
new /obj/item/device/t_scanner/upgraded
new /obj/item/taperoll/engineering(src)
return
/obj/structure/closet/secure_closet/engineering_chief/wardrobe
name = "chief engineer's locker"
req_access = list(access_ce)
icon_state = "securece1"
icon_closed = "securece"
icon_locked = "securece1"
icon_opened = "secureceopen"
icon_broken = "securecebroken"
icon_off = "secureceoff"
/obj/structure/closet/secure_closet/engineering_chief/wardrobe/New()
/obj/structure/closet/secure_closet/engineering_chief_wardrobe/New()
..()
if(prob(50))
new /obj/item/weapon/storage/backpack/industrial(src)

View File

@@ -2,7 +2,8 @@
* SC Medical
*/
/obj/structure/closet/secure_closet/CMO/lite
/obj/structure/closet/secure_closet/CMO_wardrobe
name = "chief medical officer's locker"
req_access = list(access_cmo)
icon_state = "cmosecure1"
@@ -12,37 +13,7 @@
icon_broken = "cmosecurebroken"
icon_off = "cmosecureoff"
/obj/structure/closet/secure_closet/CMO/lite/New()
..()
if(prob(50))
new /obj/item/weapon/storage/backpack/medic(src)
else
new /obj/item/weapon/storage/backpack/satchel/med(src)
if(prob(50))
new /obj/item/weapon/storage/backpack/dufflebag/med(src)
new /obj/item/clothing/suit/bio_suit/cmo(src)
new /obj/item/clothing/head/bio_hood/cmo(src)
new /obj/item/clothing/gloves/sterile/latex(src)
new /obj/item/device/radio/headset/heads/cmo/alt(src)
new /obj/item/device/flash(src)
new /obj/item/weapon/reagent_containers/hypospray/vial(src)
new /obj/item/weapon/storage/box/freezer(src)
new /obj/item/clothing/mask/gas(src)
return
/obj/structure/closet/secure_closet/CMO/wardrobe
name = "chief medical officer's locker"
req_access = list(access_cmo)
icon_state = "cmosecure1"
icon_closed = "cmosecure"
icon_locked = "cmosecure1"
icon_opened = "cmosecureopen"
icon_broken = "cmosecurebroken"
icon_off = "cmosecureoff"
/obj/structure/closet/secure_closet/CMO/wardrobe/New()
/obj/structure/closet/secure_closet/CMO_wardrobe/New()
..()
if(prob(50))
new /obj/item/weapon/storage/backpack/medic(src)

View File

@@ -93,3 +93,19 @@
new /obj/item/device/gps(src)
new /obj/item/device/geiger(src)
return
/obj/structure/closet/crate/hydroponics/exotic
name = "exotic seeds crate"
desc = "All you need to destroy that pesky planet."
/obj/structure/closet/crate/hydroponics/exotic/New()
..()
for(var/i = 1 to 6)
new /obj/item/seeds/random(src)
new /obj/item/seeds/kudzuseed(src)
new /obj/item/seeds/replicapod(src)
new /obj/item/seeds/replicapod(src)
new /obj/item/seeds/ambrosiavulgarisseed(src)
new /obj/item/seeds/ambrosiavulgarisseed(src)
new /obj/item/seeds/libertymycelium(src)
new /obj/item/seeds/reishimycelium(src)

View File

@@ -2,7 +2,8 @@
* SC Science
*/
/obj/structure/closet/secure_closet/RD/lite
/obj/structure/closet/secure_closet/RD_wardrobe
name = "research director's locker"
req_access = list(access_rd)
icon_state = "rdsecure1"
@@ -12,30 +13,7 @@
icon_broken = "rdsecurebroken"
icon_off = "rdsecureoff"
/obj/structure/closet/secure_closet/RD/lite/New()
..()
new /obj/item/clothing/suit/bio_suit/scientist(src)
new /obj/item/clothing/head/bio_hood/scientist(src)
new /obj/item/clothing/gloves/sterile/latex(src)
new /obj/item/device/radio/headset/heads/rd/alt(src)
new /obj/item/weapon/tank/air(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/flash(src)
return
/obj/structure/closet/secure_closet/RD/wardrobe
name = "research director's locker"
req_access = list(access_rd)
icon_state = "rdsecure1"
icon_closed = "rdsecure"
icon_locked = "rdsecure1"
icon_opened = "rdsecureopen"
icon_broken = "rdsecurebroken"
icon_off = "rdsecureoff"
/obj/structure/closet/secure_closet/RD/wardrobe/New()
/obj/structure/closet/secure_closet/RD_wardrobe/New()
..()
new /obj/item/clothing/under/rank/research_director(src)
new /obj/item/clothing/under/rank/research_director/rdalt(src)

View File

@@ -2,7 +2,8 @@
* SC Security
*/
/obj/structure/closet/secure_closet/hos/lite
/obj/structure/closet/secure_closet/hos_wardrobe
name = "head of security's locker"
req_access = list(access_hos)
icon_state = "hossecure1"
@@ -12,47 +13,7 @@
icon_broken = "hossecurebroken"
icon_off = "hossecureoff"
/obj/structure/closet/secure_closet/hos/lite/New()
..()
if(prob(50))
new /obj/item/weapon/storage/backpack/security(src)
else
new /obj/item/weapon/storage/backpack/satchel/sec(src)
if(prob(50))
new /obj/item/weapon/storage/backpack/dufflebag/sec(src)
new /obj/item/clothing/head/helmet/HoS(src)
new /obj/item/clothing/suit/storage/vest/hos(src)
new /obj/item/clothing/head/helmet/HoS/dermal(src)
new /obj/item/device/radio/headset/heads/hos/alt(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/taperoll/police(src)
new /obj/item/weapon/shield/riot(src)
new /obj/item/weapon/shield/riot/tele(src)
new /obj/item/weapon/reagent_containers/spray/pepper(src)
new /obj/item/weapon/crowbar/red(src)
new /obj/item/weapon/storage/box/flashbangs(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/device/flash(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/weapon/gun/energy/gun(src)
new /obj/item/weapon/cell/device/weapon(src)
new /obj/item/weapon/melee/telebaton(src)
new /obj/item/device/flashlight/maglight(src)
return
/obj/structure/closet/secure_closet/hos/wardrobe
name = "head of security's locker"
req_access = list(access_hos)
icon_state = "hossecure1"
icon_closed = "hossecure"
icon_locked = "hossecure1"
icon_opened = "hossecureopen"
icon_broken = "hossecurebroken"
icon_off = "hossecureoff"
/obj/structure/closet/secure_closet/hos/wardrobe/New()
/obj/structure/closet/secure_closet/hos_wardrobe/New()
..()
if(prob(50))
new /obj/item/weapon/storage/backpack/security(src)

View File

@@ -0,0 +1,59 @@
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/turf/template_noop,/area/submap/CaveTrench)
"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/CaveTrench)
"d" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"e" = (/turf/simulated/floor/outdoors/rocks,/area/submap/CaveTrench)
"f" = (/turf/simulated/floor/water,/area/submap/CaveTrench)
"g" = (/mob/living/simple_animal/hostile/malf_drone{desc = "An automated combat drone with an aged apperance."},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"h" = (/mob/living/simple_animal/fish/trout{faction = "malf_drone"},/turf/simulated/floor/water,/area/submap/CaveTrench)
"i" = (/obj/effect/decal/remains/human,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"j" = (/turf/simulated/wall,/area/submap/CaveTrench)
"k" = (/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"l" = (/mob/living/simple_animal/fish/trout,/turf/simulated/floor/water,/area/submap/CaveTrench)
"m" = (/turf/simulated/wall/wood,/area/submap/CaveTrench)
"n" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lantern,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"o" = (/obj/structure/table/woodentable,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"p" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"q" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"r" = (/obj/structure/table/steel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"s" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "Rellek's telling me that we're in deep shit if the townies found out I'm cooking up drones out here. Like I give a fuck, We're minning our asses off only to dig into some bug nest to get our legs chewed. Well I'm not looking a gift horse in the mouth. Those drone dudes out in the wild hooked us up with these machines so long as they get some of the metal we dig up. Win win for us, Guess we're retiring early after all."; name = "Note"},/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"t" = (/obj/structure/table/steel,/obj/item/robot_parts/robot_component/actuator,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"u" = (/obj/effect/decal/cleanable/blood,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"v" = (/obj/structure/simple_door/wood,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"w" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"x" = (/obj/structure/table/steel,/obj/item/device/robotanalyzer,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"y" = (/obj/structure/table/steel,/obj/item/weapon/storage/toolbox,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"z" = (/obj/structure/table/bench/steel,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"A" = (/obj/effect/decal/remains,/obj/item/clothing/under/rank/miner,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"B" = (/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
"C" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/obj/item/clothing/suit/storage/hooded/wintercoat/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"D" = (/obj/structure/coatrack,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"E" = (/obj/structure/closet/secure_closet/miner,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"F" = (/obj/item/weapon/storage/box/shotgunammo,/turf/simulated/floor/holofloor/wood,/area/submap/CaveTrench)
"G" = (/obj/structure/table/steel,/obj/item/robot_parts/l_leg,/obj/item/robot_parts/head,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"H" = (/obj/effect/decal/cleanable/blood/gibs/robot,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/CaveTrench)
"I" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
"J" = (/obj/machinery/drone_fabricator,/turf/simulated/shuttle/plating,/area/submap/CaveTrench)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abbccccccccccccccccccccccccccccccccccccccccca
abcccddddccdddddddddddddccccccccddddddeeeeeea
acccdddddddddddddddddddddddddddddddddeeffffea
acddddddddddddddddddddgddddddddddddddefffhfea
aciddddddddjkkjeeeeeeeeeeeeeeeeeeeeeeefffffca
abddeeeeeeeekkeeffffffffffffffffffffffffffeca
abeeefffhfffkkfffhffffffffffffffffffhfffffeea
aeefffffffffkkffffffffflfffffffffffffffffffea
aeffffffffffkkfffffffffffffffffffffffffffffea
aeeffffffhffkkfffffffffffffeeeeeeeeffeeeeeeea
abeeeeeeeeffkkfffeeeeeeeeeeeddddddeeeedddddda
abbbdddddeeekkeeeddddddddddddddddddddddddddca
abbcdddddddjkkjddddddddddddddddddddddddddddca
abcccdddddddddddddddmmmmmmmmddddddddddddidbca
abbbcidddddddgdddddnmopkkqkmmdddddddddddbbbca
abbbcccccrstudddddddvkkkqwqmmdddddddddddbbbba
abbbbbbccccxyzdABBddmCDEkqFmmdddddddccccbbbba
abbbbbbbccccGHuIJBBdmmmmmmmmdddddccccccbcbbba
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}

View File

@@ -0,0 +1,56 @@
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/turf/template_noop,/area/submap/Cavelake)
"c" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Cavelake)
"d" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
"e" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
"f" = (/turf/simulated/floor/outdoors/rocks,/area/submap/Cavelake)
"g" = (/mob/living/simple_animal/giant_crab,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
"h" = (/turf/simulated/floor/water,/area/submap/Cavelake)
"i" = (/mob/living/simple_animal/fish/perch,/turf/simulated/floor/water,/area/submap/Cavelake)
"j" = (/obj/machinery/crystal,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
"k" = (/mob/living/simple_animal/fish/trout,/turf/simulated/floor/water,/area/submap/Cavelake)
"l" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
"m" = (/obj/effect/decal/remains/mouse,/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Cavelake)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abbbbccbbbbbbcccccccbbbbbbbbbbbbbbbbbbba
abbbcccdddddccccccccbbbbbcccccccccccbbba
abbcccddddddddddddddbbbbbbbccccccccccbba
abcccdddddddddddddddddddddddddddddeccbba
abcccddddddddddddddddddddddddddddddccbba
acccddddddddddddddddddddddddddddddddcbba
acccdddddddddddddddddffffffffffdddddcbba
acccdddddddddddddgdfffhhhhhhhhffddddcbba
acccdddddddddddddddfhhhhhhhhhhhfddddcbba
accdddddddddddddddfhhhhhhhhhhhhffdddccba
accdddddddddddddddfhhhhhhhhhhhhhffffccca
acddddddddddddddddffhhhhhhihhhhhhfffffca
acddddcccjddddddddffhhhhhhhhhhhhhhhhhfca
acdddcccccdddddddddffhhhhhhhhhhhhhhhhfca
acdddccccccddddddddffhhhhhhhhhhhhhhhhfca
acdddjcccccddddddddffhhhhhhhhhhhhhhhkfca
accddddcclddddddddddfhhhhhhhhhhhhhhhhfca
accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
accdddddddddddddddddfhhhhhhhhhhhhhhhhfca
accdddddddddddddddddffhhhhhhhhhhhhhhhfca
acdddddddddddddddddddfhhhhhihhhhhhhhhfca
acddddffffffffffffdddffhhhhhhhhhhhhhhfca
acdffffhhhhhhhhhffdddfhhhhhhhhhhhhhhffca
acfhhhhhkhhhhhhhhfdddfhhhhhhhhhhhhffccca
acffhhhhhhhhhhihhfdddfhhhhhhhhhhfffdccba
acdffhhhhhhhhhhhhfddddfhhhhhhhhhfdddcbba
acddffhhhhhkhhhhhffdddfhhhhhhhfffdddccba
acdddfffhhhhhhhhhhffdddffffffffddddcccba
acddgdddffffhhhhhhhfdddddffddddddddcccba
acdddmdddddfffffffffdddddddddddddddcccba
acdddddddddddddddddddddddddddddddddccbba
accddddddddddddddddddddddddddddddddccbba
abccdddddddddddddddddddddddddddddddcbbba
abbcccddddccccddddddddddddcccbbbdddcbbba
abbbbcccccccccddddcccccccccccbbbbbcbbbba
abbbbbbbcccccccccccbbbbbccbbbbbbbbbbbbba
abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
abbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbba
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}

View File

@@ -0,0 +1,65 @@
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/turf/template_noop,/area/submap/Rockb1)
"c" = (/turf/simulated/mineral/floor/ignore_mapgen,/area/submap/Rockb1)
"d" = (/turf/simulated/mineral/ignore_mapgen/sif,/area/submap/Rockb1)
"e" = (/turf/simulated/wall/r_wall,/area/submap/Rockb1)
"f" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/lino,/area/submap/Rockb1)
"g" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/weapon/gun/projectile/pistol,/obj/item/ammo_magazine/m9mm/compact,/obj/item/ammo_magazine/m9mm/compact,/turf/simulated/floor/lino,/area/submap/Rockb1)
"h" = (/obj/structure/bookcase,/turf/simulated/floor/lino,/area/submap/Rockb1)
"i" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"j" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"k" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"l" = (/obj/item/seeds/ambrosiadeusseed,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"m" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"n" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/material/shard,/turf/simulated/floor/plating,/area/submap/Rockb1)
"o" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/plating,/area/submap/Rockb1)
"p" = (/obj/structure/bed,/turf/simulated/floor/lino,/area/submap/Rockb1)
"q" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/lino,/area/submap/Rockb1)
"r" = (/turf/simulated/floor/lino,/area/submap/Rockb1)
"s" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockb1)
"t" = (/turf/simulated/floor/tiled,/area/submap/Rockb1)
"u" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/material/shard{icon_state = "medium"},/turf/simulated/floor/tiled,/area/submap/Rockb1)
"v" = (/obj/effect/decal/cleanable/dirt,/obj/item/stack/rods,/turf/simulated/floor/plating,/area/submap/Rockb1)
"w" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"x" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5},/turf/simulated/floor/tiled,/area/submap/Rockb1)
"y" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"z" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"A" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockb1)
"B" = (/obj/machinery/power/apc{operating = 0; pixel_x = 31},/turf/simulated/floor/tiled,/area/submap/Rockb1)
"C" = (/obj/machinery/door/airlock,/turf/space,/area/submap/Rockb1)
"D" = (/obj/machinery/light/small{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/hydro,/area/submap/Rockb1)
"E" = (/obj/structure/toilet{dir = 8},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled/hydro,/area/submap/Rockb1)
"F" = (/obj/structure/table/standard,/obj/item/weapon/pickaxe/drill,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"G" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"H" = (/obj/effect/decal/cleanable/dirt,/obj/structure/closet/excavation,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"I" = (/obj/structure/table/standard,/obj/item/stack/material/cyborg/steel,/obj/item/stack/material/cyborg/glass,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"J" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"K" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"L" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/tiled,/area/submap/Rockb1)
"M" = (/turf/simulated/floor/plating,/area/submap/Rockb1)
"N" = (/obj/machinery/light/small{brightness_color = "#DA0205"; brightness_power = 1; brightness_range = 5},/turf/simulated/floor/plating,/area/submap/Rockb1)
"O" = (/obj/effect/decal/cleanable/greenglow,/turf/simulated/floor/plating,/area/submap/Rockb1)
"P" = (/obj/structure/loot_pile/maint/trash,/turf/simulated/floor/plating,/area/submap/Rockb1)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaa
abbbcbbbbbbbbbbbbbbbbbbba
abbcccccccddddddccccccbba
abcccddddddddddddddccccba
abccddddddddddddddddcccba
abcddeeeeeeeeeeeeeedcccca
abcddefgheijkelmnoedcccca
abcddepqrestmetumvedcccba
abcddeeewemtteweeeeecccba
accddemtxmmtttttxyzycccba
abdddeweeeeeeeweeeeecccba
abdddettABetAmtCDEedcccba
abdddeFGHmetIJKeeeedcccba
abcddeeeeeeLeeeeddddcccba
abccddddddeMNOPedddccccba
abccddddddeeeeeedccccccba
abcccccccddddddddddccccba
abbcccccccccccccccccccbba
abbbbbbbbbbbbbccccbbbbbba
aaaaaaaaaaaaaaaaaaaaaaaaa
"}

View File

@@ -12,6 +12,8 @@
#include "crystal2.dmm"
#include "crystal3.dmm"
#include "lost_explorer.dmm"
#include "CaveTrench.dmm"
#include "Cavelake.dmm"
#endif
// The 'mountains' is the mining z-level, and has a lot of caves.
@@ -108,3 +110,15 @@
desc = "A minning tunnel home to an aggressive collection of spiders."
mappath = 'maps/submaps/surface_submaps/mountains/Scave1.dmm'
cost = 20
/datum/map_template/surface/mountains/deep/CaveTrench
name = "Cave River"
desc = "A strange underground river"
mappath = 'maps/submaps/surface_submaps/mountains/CaveTrench.dmm'
cost = 20
/datum/map_template/surface/mountains/deep/Cavelake
name = "Cave Lake"
desc = "A large underground lake."
mappath = 'maps/submaps/surface_submaps/mountains/Cavelake.dmm'
cost = 20

View File

@@ -32,3 +32,12 @@
/area/submap/cave/lost_explorer
name = "Final Resting Place"
/area/submap/Rockb1
name = "RockyBase1"
/area/submap/Cavelake
name = "Cavelake"
/area/submap/CaveTrench
name = "Cave River"

View File

@@ -0,0 +1,43 @@
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/turf/template_noop,/area/submap/Peninsula)
"c" = (/turf/simulated/floor/outdoors/rocks,/area/submap/Peninsula)
"d" = (/turf/simulated/floor/water,/area/submap/Peninsula)
"e" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Peninsula)
"f" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Peninsula)
"g" = (/obj/structure/table/woodentable,/obj/item/device/flashlight,/turf/template_noop,/area/submap/Peninsula)
"h" = (/obj/structure/table/woodentable,/obj/item/weapon/cell/device,/obj/item/weapon/cell/device,/turf/template_noop,/area/submap/Peninsula)
"i" = (/obj/structure/bonfire,/turf/template_noop,/area/submap/Peninsula)
"j" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/template_noop)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
abbbbbbbbbcccccccccccccccbbbba
abbbcccccccdddddddddddddccccea
aecccddddddddddddddddddddddcba
abcddddddddddddddddddddddddcba
abcddddddddddddddddddddddddcba
abcddddddddddddddddddddddddcca
abcdddddddddddddddddddddddddca
abcdddddddddddddddddddddddddca
abccdddddddcccccccddddddddddca
abbcddddddccbbbbbccddccdddddca
abbcdddddccbbffbbecccccdddddca
abbcdddddcbbfffbbbbbebccdddcca
abbcdddddcbbfffgbbbbbbbccdddca
abbcdddddcbbfffhbbibbbbbcdddca
jbbccddddcbbbfbbebbbbbbccdddca
abbbcddddccebbbbbbbbbbccdddcca
abbccdddddcbbbbbbbbebccddddcba
abbccdddddcbbbbbbbbbbcdddddcba
aebcddddddccbbbbbbbbbcdddddcba
abbccddddddcbbbbbbbbbcdddddcba
abbcdddddddcbbbbbbbbbcdddddcba
abbcdddddddcbbebbbbbbcdddddcba
abbcdddddddcbbbbbbbbbcdddddcba
abbcdddddddcbbbbbbbbbcdddddcba
abbcdddddddcbbbbbbbbccdddddcba
abccccddddccbbbbbbbbcddddddcba
abcbbccccccbbbbbbbbbbcdcccccba
abbbbbbbbbbebbbbbbbebccccbbbea
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}

View File

@@ -7,6 +7,7 @@
#include "camp1.dmm"
#include "house1.dmm"
#include "beacons.dmm"
#include "Epod.dmm"
#endif
// The 'plains' is the area outside the immediate perimeter of the big outpost.
@@ -47,3 +48,16 @@
desc = "A bunch of marker beacons, scattered in a strange pattern."
mappath = 'maps/submaps/surface_submaps/plains/beacons.dmm'
cost = 5
/datum/map_template/surface/plains/Epod
name = "Emergency Pod"
desc = "A vacant Emergency pod in the middle of nowhere."
mappath = 'maps/submaps/surface_submaps/plains/Epod.dmm'
cost = 5
/datum/map_template/surface/wilderness/normal/Rocky2
name = "Rocky2"
desc = "More rocks."
mappath = 'maps/submaps/surface_submaps/wilderness/Rocky2.dmm'
allow_duplicates = TRUE
cost = 5

View File

@@ -12,3 +12,12 @@
/area/submap/beacons
name = "collection of marker beacons"
/area/submap/Epod1
name = "Epod1"
/area/submap/Rocky2
name = "Rocky2"
/area/submap/Peninsula
name = "Peninsula"

View File

@@ -5,11 +5,11 @@
"ae" = (/obj/effect/decal/cleanable/blood,/turf/template_noop,/area/submap/Blackshuttledown)
"af" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Blackshuttledown)
"ag" = (/obj/structure/table/steel,/turf/template_noop,/area/submap/Blackshuttledown)
"ah" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual."; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/template_noop,/area/submap/Blackshuttledown)
"ah" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/template_noop,/area/submap/Blackshuttledown)
"ai" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark6"; name = "Unknown Shuttle"; tag = "icon-dark6"},/area/submap/Blackshuttledown)
"aj" = (/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
"ak" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark10"; name = "Unknown Shuttle"; tag = "icon-dark10"},/area/submap/Blackshuttledown)
"al" = (/obj/machinery/door/airlock/external,/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
"al" = (/obj/machinery/door/airlock/external{density = 1; frequency = 1331; id_tag = "merc_shuttle_outer"; name = "Ship External Access"; req_access = list(150)},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"am" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
"an" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_l"},/turf/template_noop,/area/submap/Blackshuttledown)
"ao" = (/obj/machinery/light{dir = 1},/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
@@ -43,34 +43,38 @@
"aQ" = (/obj/machinery/computer/communications,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aR" = (/obj/structure/closet/secure_closet/freezer/fridge,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aS" = (/obj/structure/table/steel,/obj/item/weapon/material/knife,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aT" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aU" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
"aW" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
"aY" = (/obj/structure/table/steel,/obj/item/pizzabox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aZ" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"ba" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
"bb" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/hyper; dir = 4; name = "Unknown APC"; pixel_x = 24},/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
"bc" = (/obj/machinery/computer/area_atmos,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bd" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"be" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bf" = (/obj/machinery/portable_atmospherics/canister/empty/oxygen,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bg" = (/obj/machinery/atmospherics/pipe/tank/oxygen,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bh" = (/obj/structure/bed/chair/office/dark,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bi" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bj" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bk" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bl" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bm" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bn" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bo" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bp" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bq" = (/obj/machinery/light,/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"br" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bs" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bt" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown)
"bu" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown)
"aT" = (/mob/living/simple_animal/hostile/syndicate/ranged{desc = "Dosen't look friendly in the slightest."; name = "Unknown Individual"; say_got_target = list("Looks like trouble!","Contact!","We've got company!","Perimeter Breached!!"); speak = list("One day the'll fix that damn engine..","Next time, We're hidding on the tropical beach planet.","Wish I had better equipment...","I knew I should have been a line chef...","Fuckin' helmet keeps fogging up.","Hate this blocky ass ship.")},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aU" = (/obj/structure/table/steel,/obj/random/toolbox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aV" = (/obj/structure/table/steel,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
"aX" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"aY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
"aZ" = (/obj/structure/table/steel,/obj/item/pizzabox,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"ba" = (/obj/item/weapon/paper{desc = ""; info = "Brusies sustained in the holodeck can be healed simply by sleeping."; name = "Holodeck Disclaimer"},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bb" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/submap/Blackshuttledown)
"bd" = (/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/hyper; dir = 4; name = "Unknown APC"; pixel_x = 24},/turf/simulated/shuttle/wall/dark{icon_state = "dark0"; name = "Unknown Shuttle"; tag = "icon-dark0"},/area/submap/Blackshuttledown)
"be" = (/obj/machinery/computer/area_atmos,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bf" = (/obj/structure/table/steel,/obj/item/weapon/paper{info = "We need to take a short stop. The engine's are in need of minor repairs due to turbulence, should be a week's time. We've got reserve food supplies but pleanty of locale fauna to subsist on too if need be. PCRC is keeping most of there assets near New Reykjavik and locale authorities are more mindful then most to travel in this kind of weather. Our outfit should be at the rendezvous point in less then ten days assuming the upper ecehelon hasn't dropped ties with us yet."; name = "Operation Progress/M-53"},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bg" = (/obj/structure/table/steel,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bh" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bi" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bj" = (/obj/machinery/portable_atmospherics/canister/empty/oxygen,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bk" = (/obj/machinery/atmospherics/pipe/tank/oxygen,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bl" = (/obj/structure/bed/chair/office/dark,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bm" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bn" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bo" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bp" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bq" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/bed,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"br" = (/mob/living/simple_animal/hostile/viscerator,/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bs" = (/obj/structure/table/steel,/obj/item/weapon/gun/projectile/pistol,/obj/item/weapon/gun/projectile/shotgun/pump,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bt" = (/obj/structure/toilet{dir = 1},/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bu" = (/obj/machinery/light,/obj/structure/table/rack,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bv" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bw" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/tiled/steel,/area/submap/Blackshuttledown)
"bx" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark5"; name = "Unknown Shuttle"; tag = "icon-dark5"},/area/submap/Blackshuttledown)
"by" = (/turf/template_noop,/turf/simulated/shuttle/wall/dark{icon_state = "dark9"; name = "Unknown Shuttle"; tag = "icon-dark9"},/area/submap/Blackshuttledown)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -87,19 +91,19 @@ aaabababababababauajajaqavajaqaqajawawajaqaxaqaqaqaqayajajazababababaa
aaabababababababaAajajaBaCajaqaqaqaqaqajaqaqaqaqaDaqaEajazabababababaa
aaabafababababaAajaFajaqaFajaqaqaqaqaEajaGaHaqaqaIaJaKajababababafabaa
aaabababababaAajaLaMajaNajajaqaqajajajajajajaOajajajajajaPabababababaa
aaabababababajaQaqaqajaqaqaqaqaqajaRaSaqasaqaDaqajaTaTaUajaPababababaa
aaabababababaVaFaqaqajaLaqaqaqaEajaqaqaWaWaWaqaqajaFaqaqaqamanabababaa
aaabababababaXaFaqaqaOaqaqaqaqaqaOaqaqaYaFaFaqaqaZaqaqaqaqamanabababaa
aaabababababaXaFaqaqaOaqaqaqaqaqaOaqaqaFaFaFaqaqaZaqaqaqaqamanabababaa
aaabababababbaaFaqaqajaLaqaqaqaEajaqaqaWaWaWaqaqbbaqaqaqaDamanabababaa
aaabababababajbcaqaDajaqaqaqaqaqajaFaFaqbdaDaqaqajbebfbgajazababababaa
aaabababababauajaLbhajaNajajaqaqajajajajajajaOajajajajajazabababababaa
aaababababababauajaFajaqbiajaqaqaqaqaEajbjaqaqaqaqaZaqajababababababaa
aaabafabababababauajajbkblajaqaqaqaqaqajbmaqbjaqbjajarajaPabafabababaa
aaabababababababaAajajbnboajaqaDajawawajbjaqbjaqbjajbpajajaPababababaa
aaabababababababajajajajajajbqapajaqarajbjaqbraqbsajajajajamanabababaa
aaabababababajaQaqaqajaqaqaqaqaqajaRaSaqasaqaTaqajaUaUaVajaPababababaa
aaabababababaWaFaqaqajaLaqaqaqaEajaqaqaXaXaXaqaqajaFaqaqaqamanabababaa
aaabababababaYaFaqaqaOaqaqaqaqaqaOaqaqaZbaaFaqaqbbaqaqaqaqamanabababaa
aaabababababaYaFaqaqaOaqaqaqaqaqaOaqaqaFaFaFaqaqbbaqaqaqaqamanabababaa
aaabababababbcaFaqaqajaLaqaqaqaEajaqaqaXaXaXaqaqbdaqaqaqaTamanabababaa
aaabababababajbeaqaTajaqaqaqaqaqajbfbgaqbhaTaqaqajbibjbkajazababababaa
aaabababababauajaLblajaNajajaqaqajajajajajajaOajajajajajazabababababaa
aaababababababauajaFajaqbmajaqaqaqaqaEajbnaqaqaqaqbbaqajababababababaa
aaabafabababababauajajbobpajaqaqaqaqaqajbqaqbnaqbnajarajaPabafabababaa
aaabababababababaAajajbrbsajaqaTajawawajbnaqbnaqbnajbtajajaPababababaa
aaabababababababajajajajajajbuapajaqarajbnaqbvaqbwajajajajamanabababaa
aaabababababababajajajajajajajajajalalajajajajajajajajajajamanabababaa
aaababafababababbtajajajbuababagahabababagabababbtajajajajbuababababaa
aaababafababababbxajajajbyababagahabababagabababbxajajajajbyababababaa
aaabababadabababababafababababagabababahagababababafabababadadadababaa
aaababadadabacababababababababagagagagagagababababacababadadadadababaa
aaabadadadabababababababaeababababababababababadadabababadadadadababaa

View File

@@ -0,0 +1,40 @@
"a" = (/turf/template_noop,/area/template_noop)
"b" = (/turf/template_noop,/area/submap/MHR)
"c" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/MHR)
"d" = (/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
"e" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/MHR)
"f" = (/obj/effect/decal/cleanable/spiderling_remains,/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
"g" = (/obj/structure/table/rack,/obj/item/weapon/storage/backpack,/turf/template_noop,/area/submap/MHR)
"h" = (/obj/structure/table/standard,/turf/template_noop,/area/submap/MHR)
"i" = (/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/template_noop,/area/submap/MHR)
"j" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
"k" = (/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
"l" = (/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
"m" = (/obj/effect/decal/cleanable/spiderling_remains,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
"n" = (/obj/effect/decal/remains/robot,/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
"o" = (/mob/living/simple_animal/hostile/viscerator,/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
"p" = (/obj/effect/decal/remains,/obj/item/clothing/mask/gas/explorer,/obj/item/weapon/material/twohanded/fireaxe,/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
"q" = (/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/obj/item/weapon/reagent_containers/food/snacks/xenomeat/spidermeat,/turf/simulated/floor/outdoors/dirt,/area/submap/MHR)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaa
abcbbbbbbbbbbdbeeeca
abbbbbbbbbbdddfeeeea
abbbbbbbbbbdfdddeeea
abbbbbghieeeedddeeea
abbbbeeeeeeeeeddeeea
abbbeeeeeeeeeeedeeea
acbeeeeeeeeeeeedeeea
abeeeeeeeeeeeeedjeea
abeeeeedkjeelddddeea
abeeemddddnfdddddeea
abeeeododdddddddpeea
abeeedddfdddddddeeea
abbeedoddddqddneeeea
abbeeefeeqodddeeeeba
abbeeeeeeeeeeeeeebba
abbbeeeeeeeeeeeeebba
acbbbeeeeeeeebbbbbba
abbbbcbbbbbbbbbbbbca
aaaaaaaaaaaaaaaaaaaa
"}

View File

@@ -0,0 +1,170 @@
"aa" = (/turf/template_noop,/area/template_noop)
"ab" = (/obj/effect/decal/remains,/turf/template_noop,/area/submap/Rockybase)
"ac" = (/turf/template_noop,/area/submap/Rockybase)
"ad" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/submap/Rockybase)
"ae" = (/mob/living/simple_animal/hostile/malf_drone{desc = "An automated combat drone with an aged apperance."},/turf/template_noop,/area/submap/Rockybase)
"af" = (/turf/simulated/mineral/ignore_mapgen,/area/submap/Rockybase)
"ag" = (/turf/simulated/floor,/area/submap/Rockybase)
"ah" = (/obj/machinery/porta_turret/stationary,/turf/simulated/floor,/area/submap/Rockybase)
"ai" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase)
"aj" = (/obj/structure/flora/tree/sif,/turf/template_noop,/area/template_noop)
"ak" = (/obj/machinery/light,/turf/simulated/floor,/area/submap/Rockybase)
"al" = (/turf/simulated/wall/r_wall,/area/submap/Rockybase)
"am" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/submap/Rockybase)
"an" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"ao" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"ap" = (/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"aq" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/item/weapon/soap,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"ar" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"as" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"at" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"au" = (/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"av" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"aw" = (/obj/structure/table/woodentable,/obj/machinery/light{dir = 1},/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"ax" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/toy/plushie/spider,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"ay" = (/obj/structure/closet/l3closet/janitor,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"az" = (/mob/living/bot/cleanbot,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aA" = (/obj/item/weapon/stool,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aB" = (/obj/item/weapon/storage/belt/janitor,/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aC" = (/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aD" = (/obj/structure/table/standard,/obj/item/device/laptop,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aE" = (/obj/structure/table/standard,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aF" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aG" = (/obj/structure/table/rack,/obj/item/weapon/gun/energy/gun/taser,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aH" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aI" = (/obj/machinery/vending/coffee,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aJ" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/obj/item/weapon/gun/projectile/shotgun/pump/combat,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aK" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aL" = (/obj/structure/closet/crate/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aM" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"aN" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"aO" = (/obj/structure/janitorialcart,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aP" = (/obj/structure/table/standard,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aQ" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aR" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "Carl's absolutly fucked in the head. He's trying to squeeze as much drone production out as he can since he's worried we're gonna get found out but he's getting sloppier with each batch. Now's he's telling us he can speed the time on the IFF encoding. I already have a hard enough time getting these damn things not to stare at walls and now he's gonna shortchange the only part of these tincans that tells em not to turn us into paste on a wall. I told Richter to get out while he can, We're counting days before either some Sif task force shows up at our door or these things decide we aren't there friends anymore."; name = "Note"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aS" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aT" = (/obj/machinery/vending/security,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aU" = (/obj/structure/table/rack,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/weapon/storage/box/shotgunshells,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/obj/item/ammo_magazine/m10mm,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aV" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"aW" = (/obj/machinery/light,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"aX" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/item/weapon/gun/projectile/pistol,/turf/simulated/floor/holofloor/lino,/area/submap/Rockybase)
"aY" = (/obj/structure/closet/crate/trashcart,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"aZ" = (/obj/structure/table/standard,/obj/item/weapon/storage/bag/trash,/obj/item/weapon/storage/bag/trash,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"ba" = (/obj/structure/table/standard,/obj/item/weapon/paper_bin,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bb" = (/obj/machinery/light,/obj/structure/table/standard,/obj/item/weapon/pen,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bc" = (/obj/machinery/door/airlock/security{locked = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bd" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"be" = (/obj/structure/table/rack,/obj/item/weapon/gun/projectile/automatic/c20r,/obj/item/weapon/gun/projectile/automatic/c20r,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bf" = (/obj/machinery/portable_atmospherics/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bg" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bh" = (/mob/living/bot/farmbot,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bi" = (/obj/machinery/portable_atmospherics/hydroponics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bj" = (/obj/machinery/vending/cola,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bk" = (/obj/structure/door_assembly,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bl" = (/mob/living/simple_animal/hostile/malf_drone{desc = "An automated combat drone with an aged apperance."},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bm" = (/obj/effect/decal/cleanable/blood,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bn" = (/obj/effect/decal/remains,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bo" = (/obj/machinery/door/airlock,/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"bp" = (/obj/machinery/vending/snack,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bq" = (/obj/item/stack/rods,/obj/structure/girder,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"br" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bs" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"bt" = (/obj/machinery/door/airlock/engineering,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bu" = (/turf/simulated/wall,/area/submap/Rockybase)
"bv" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "I've decided to go forward and start some small scale tests of the Vicerator delivery grenades, Might as wall make sure they work like the real ones. There are a few Fauna areas nearbye and we're working to make sure the kinks in the code are worked out. Once we've made sure they stay flying we'll work on the IFF signals."; name = "V-Grenade Notice 2"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bw" = (/obj/structure/table/standard,/obj/random/toolbox,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bx" = (/obj/structure/table/standard,/obj/random/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"by" = (/obj/structure/table/standard,/obj/item/weapon/paper{info = "We've finally been able to get the Vicerator delivery grenades working, Took awhile to make sure the latching mechanism didn't fail but we're sure we've got it this time. Vel'Shem's worried about the miners having there own drone fab now but I say it's a small price to pay to keep the metal flowing, Especially since there telling us NT's starting to monopolize the metal rich parts."; name = "V-Grenade Notice 1"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bz" = (/obj/structure/table/standard,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/obj/item/stack/material/diamond,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bA" = (/obj/structure/table/standard,/obj/item/weapon/grenade/spawnergrenade/manhacks,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bB" = (/obj/structure/table/standard,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bC" = (/obj/structure/table/standard,/obj/machinery/light{dir = 1},/obj/item/weapon/circuitboard/mecha/gygax/main,/obj/item/weapon/circuitboard/mecha/gygax/peripherals,/obj/item/weapon/circuitboard/mecha/gygax/targeting,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bD" = (/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase)
"bE" = (/obj/structure/table/standard,/obj/fiftyspawner/rods,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bF" = (/obj/machinery/vending/engivend,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bG" = (/obj/machinery/vending/tool,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bH" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bI" = (/obj/structure/table/standard,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bJ" = (/obj/machinery/light{dir = 1},/obj/structure/closet/crate/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bK" = (/obj/structure/table/standard,/obj/structure/table/standard,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bL" = (/obj/structure/table/standard,/obj/item/clothing/mask/breath/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bM" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bN" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bO" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"bP" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"bQ" = (/obj/item/stack/rods,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bR" = (/obj/effect/decal/cleanable/dirt,/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase)
"bS" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase)
"bT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor,/area/submap/Rockybase)
"bU" = (/obj/structure/girder,/turf/simulated/floor,/area/submap/Rockybase)
"bV" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bW" = (/obj/machinery/light/small{dir = 4; pixel_y = 0},/turf/simulated/floor/tiled/hydro,/area/submap/Rockybase)
"bX" = (/obj/machinery/drone_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bY" = (/obj/machinery/mecha_part_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"bZ" = (/obj/machinery/pros_fabricator,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"ca" = (/obj/structure/table/standard,/obj/item/mecha_parts/mecha_equipment/repair_droid,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cb" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cc" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cd" = (/obj/machinery/power/smes,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"ce" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cf" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cg" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase)
"ch" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/material/shard,/turf/simulated/floor,/area/submap/Rockybase)
"ci" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor,/area/submap/Rockybase)
"cj" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"ck" = (/mob/living/simple_animal/hostile/mecha{faction = "malf_drone"; name = "Autonomous Defense Mecha"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cl" = (/obj/machinery/vending/robotics,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cm" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light{dir = 8},/obj/machinery/power/apc{cell_type = /obj/item/weapon/cell/super; dir = 8; name = "Unknown APC"; pixel_x = -24},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"co" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cp" = (/obj/machinery/power/smes,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cq" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/blood,/turf/simulated/floor,/area/submap/Rockybase)
"cr" = (/obj/machinery/vending,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"ct" = (/obj/machinery/light{dir = 8},/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cu" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/mob/living/simple_animal/hostile/malf_drone{desc = "An automated combat drone with an aged apperance."},/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cv" = (/obj/structure/closet/secure_closet/hydroponics,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cw" = (/obj/machinery/mech_recharger,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cx" = (/obj/structure/table/standard,/obj/item/stack/material/plasteel,/obj/item/stack/material/glass/reinforced,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cy" = (/obj/structure/table/standard,/obj/item/stack/material/glass,/obj/item/stack/material/steel,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cz" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cA" = (/obj/structure/closet/secure_closet/medical3,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cB" = (/obj/item/weapon/surgical/surgicaldrill,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cC" = (/obj/item/clothing/suit/space/void/medical,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cD" = (/obj/effect/decal/cleanable/dirt,/mob/living/bot/medbot,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cE" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cF" = (/obj/structure/closet/crate/secure/hydrosec,/turf/simulated/floor/tiled,/area/submap/Rockybase)
"cG" = (/obj/effect/decal/remains,/turf/template_noop,/area/template_noop)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaabacacacadacacacacadacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacacacabacacacacacaa
aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaa
aaacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaeacacacacaa
aaacacacacacacacacacacaeacacacacadacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacaa
aaacacafafafafafacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacadacacacacacacacacacacaa
aaacacafafafafafafacacacacafafafafafacacacacacacacacagagagagagagacacacacacacacacacafafafacacacacacaa
aaacafafafafafafafafafafafafafafafafafacacacacacahagagaiagagagagagahacacacacacafafafafafafafafafacaa
ajacafafafafafafafafafafafafafafafafafafafafafagagakagagagagagaiakagagafafafafafafafafafafafafafacaa
aaacafafalalalalalalalalalalalalalalalalalalalalalalalamananamalalalalalalalalalalalalalafafafafacaa
aaacafalalaoapaqalararasatauauaravawavaraxalalayazaAaBalaCaCalaDaEaFaGaHaIalaCaJalaKaLalalafafafacaa
aaafafalalaMapaNalauauauauauauauauauauauaualalaOaCaCaPalaQaCalaRaSaCaCaCaTalaCaUalaCaCalalafafafacaa
aaafafalalaMapaValauauauauaWauaraXaravaravalalaYaCaCaZalaCaCalbabbaCaCaCaCbcbdbealaCbfalalafafafacaa
aaafafalalapapapalalalbgalalalalalalalalalalalalbgalalalananalalalalalbgalalalalalbhbialalafafafacaa
aaafafalalalbgalalbjaCaCaCaCaHaCaCaCaCbkaCaHaCaCaCaCaCaCaCaCaCaCaHaCaCaCaCaCaHaCalaCbfalalafafafacaa
aaafafalalaQaCaCaCaCaCaCblaCaCaCbmbnaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCaCblaCaCbgaCbfalalafafafacaa
aaacafalalalboalalbpaCaCbdaCaCaCaCaCbqaCagbnbdaCbmaCbraCaCaCaCaCaCaCbdaCaCaCaCaCalaCbialalafafafacaa
aaacafalalbsapapalalalalalalalalalalalagagalalalalbtalalalalaCalalalalalalalalalalaCbfalalafafafacaa
aaacafalalbubuapalaCbvbwbxbybzbAbBbCbkagbDbEalbFbGaCbHbIalaCaCaCbJbKbLbMaCaCaCbNalaCbfalalafafafacaa
aaacafalalbObobPalaCaCaCaCaCaCaCaCaCaCaCagaEalaCaCaCaCaCalbkaCbMbMbQbRbSbTbUaCbValaCbialalafafafadaa
aaacafalalbububWalaCbXaCaCbXaCaCbYaCbZaCagcaalaCaCcbcccdalceaCbMcfcgchcicgagagaCalaCbfalalafafacacaa
aaacafalalbOboapalcjaCaCaCaCckaCaCaCaCaCaCclalcmcncocccpalaCaCbMcqcicicgbTagbDaCalaCaCalalafafacacaa
aaacafalalbububPalaCbXaCaCagagaCaCaCaCaCaCcralaCaCcscccdalctaCaCcucgbSbSbSbSagbMalaCcvalalafacacacaa
aaacafalalbOboapalaCaCaCaCaCaCbdcwaCcwaCaCbGalcxcyaEczaCalcAaCcBaCaCaCbUaCcCbMcDalcEcFalalafafacacaa
aaacafafalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalalafafacacaeaa
aaacafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafafacacacaa
aaacafafafafafafafafafafafafafafafafafafafafafafafafafafafafafacafafafacacacafafafafafafafacacacacaa
aaacacafafafafafafafafafafafafaeacacacafafafafafafacacacacacacacacacacacacacacacacacacacacacacacacaa
aaacadacacacacacacafafafafafacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaa
aaaacGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajaaaaaaaaaaaacGaaajaaaa
"}

View File

@@ -14,11 +14,12 @@
#include "Mudpit.dmm"
#include "Snowrock1.dmm"
#include "Boombase.dmm"
#include "Epod.dmm"
#include "Blackshuttledown.dmm"
#include "Lab1.dmm"
#include "Rocky4.dmm"
#include "DJOutpost1.dmm"
#include "Rockybase.dmm"
#include "MHR.dmm"
#endif
@@ -103,12 +104,6 @@
mappath = 'maps/submaps/surface_submaps/wilderness/Snowrock1.dmm'
cost = 5
/datum/map_template/surface/wilderness/normal/Epod
name = "Emergency Pod"
desc = "A vacant Emergency pod in the middle of nowhere."
mappath = 'maps/submaps/surface_submaps/wilderness/Epod.dmm'
cost = 5
/datum/map_template/surface/wilderness/normal/Cragzone1
name = "Cragzone1"
desc = "Rocks and more rocks."
@@ -128,8 +123,6 @@
mappath = 'maps/submaps/surface_submaps/wilderness/Rocky4.dmm'
cost = 5
/datum/map_template/surface/wilderness/deep/DJOutpost1
name = "DJOutpost1"
desc = "Home of Sif Free Radio, the best - and only - radio station for miles around."
@@ -147,3 +140,15 @@
desc = "You REALLY shouldn't be near this."
mappath = 'maps/submaps/surface_submaps/wilderness/Blackshuttledown.dmm'
cost = 30
/datum/map_template/surface/wilderness/deep/Rockybase
name = "Rocky Base"
desc = "A guide to upsetting Icarus and the EIO"
mappath = 'maps/submaps/surface_submaps/wilderness/Rockybase.dmm'
cost = 35
/datum/map_template/surface/wilderness/deep/MHR
name = "Manhack Rock"
desc = "A rock filled with nasty Synthetics."
mappath = 'maps/submaps/surface_submaps/wilderness/MHR.dmm'
cost = 15

View File

@@ -38,9 +38,6 @@
/area/submap/BoomBase
name = "Boom1"
/area/submap/Epod1
name = "Epod1"
/area/submap/Blackshuttledown
name = "BSD"
requires_power = FALSE
@@ -56,3 +53,9 @@
/area/submap/DJOutpost1
name = "DJOutpost1"
/area/submap/MHR
name = "Manhack Rock"
/area/submap/Rockybase
name = "Rockybase"

View File

@@ -600,49 +600,55 @@ table.pmon td, table.pmon th {
/* Table Stuffs for manifest*/
th.command {
th.Command {
background: #3333FF;
font-weight: bold;
color: #ffffff;
}
th.sec {
th.Security {
background: #8e0000;
font-weight: bold;
color: #ffffff;
}
th.med {
th.Medical {
background: #006600;
font-weight: bold;
color: #ffffff;
}
th.eng {
th.Engineering {
background: #b27300;
font-weight: bold;
color: #ffffff;
}
th.sci {
th.Science {
background: #a65ba6;
font-weight: bold;
color: #ffffff;
}
th.car {
th.Cargo {
background: #bb9040;
font-weight: bold;
color: #ffffff;
}
th.civ {
th.Planetside{
background: #555555;
font-weight: bold;
color: #ffffff;
}
th.Civilian {
background: #a32800;
font-weight: bold;
color: #ffffff;
}
th.misc {
th.Miscellaneous {
background: #666666;
font-weight: bold;
color: #ffffff;

View File

@@ -297,82 +297,20 @@ Used In File(s): \code\game\objects\items\devices\PDA\PDA.dm
{{else data.mode== 41}} <!-- Manifest uses cached data so we only use nanowriter when shit changes.-->
<div class="item">
<center><table class="pmon"><tbody>
{{if data.manifest.heads.length}}
<tr><th colspan="3" class="command">Command</th></tr>
{{for data.manifest["heads"]}}
{{if value.rank == "Captain"}}
<tr><td><span class="good">{{:value.name}}</span></td><td><span class="good">{{:value.rank}}</span></td><td><span class="good">{{:value.active}}</span></td></tr>
{{else}}
<tr><td><span class="average">{{:value.name}}</span></td><td><span class="average">{{:value.rank}}</span></td><td><span class="average">{{:value.active}}</span></td></tr>
{{/if}}
{{for data.manifest}}
{{if value.elems.length}}
<tr><th colspan="3" class={{:value.cat}}>{{:value.cat}}</th></tr>
{{for value.elems :itemValue:itemIndex}}
<tr>
<td><span class="average">{{:itemValue.name}}</span></td>
<td><span class="average">{{:itemValue.rank}}</span></td>
<td><span class="average">{{:itemValue.active}}</span></td>
</tr>
{{/for}}
{{/if}}
{{if data.manifest.sec.length}}
<tr><th colspan="3" class="sec">Security</th></tr>
{{for data.manifest["sec"]}}
{{if value.rank == "Head of Security"}}
<tr><td><span class="good">{{:value.name}}</span></td><td><span class="good">{{:value.rank}}</span></td><td><span class="good">{{:value.active}}</span></td></tr>
{{else}}
<tr><td><span class="average">{{:value.name}}</span></td><td><span class="average">{{:value.rank}}</span></td><td><span class="average">{{:value.active}}</span></td></tr>
{{/if}}
{{/for}}
{{/if}}
{{if data.manifest.eng.length}}
<tr><th colspan="3" class="eng">Engineering</th></tr>
{{for data.manifest["eng"]}}
{{if value.rank == "Chief Engineer"}}
<tr><td><span class="good">{{:value.name}}</span></td><td><span class="good">{{:value.rank}}</span></td><td><span class="good">{{:value.active}}</span></td></tr>
{{else}}
<tr><td><span class="average">{{:value.name}}</span></td><td><span class="average">{{:value.rank}}</span></td><td><span class="average">{{:value.active}}</span></td></tr>
{{/if}}
{{/for}}
{{/if}}
{{if data.manifest.med.length}}
<tr><th colspan="3" class="med">Medical</th></tr>
{{for data.manifest["med"]}}
{{if value.rank == "Chief Medical Officer"}}
<tr><td><span class="good">{{:value.name}}</span></td><td><span class="good">{{:value.rank}}</span></td><td><span class="good">{{:value.active}}</span></td></tr>
{{else}}
<tr><td><span class="average">{{:value.name}}</span></td><td><span class="average">{{:value.rank}}</span></td><td><span class="average">{{:value.active}}</span></td></tr>
{{/if}}
{{/for}}
{{/if}}
{{if data.manifest.sci.length}}
<tr><th colspan="3" class="sci">Science</th></tr>
{{for data.manifest["sci"]}}
{{if value.rank == "Research Director"}}
<tr><td><span class="good">{{:value.name}}</span></td><td><span class="good">{{:value.rank}}</span></td><td><span class="good">{{:value.active}}</span></td></tr>
{{else}}
<tr><td><span class="average">{{:value.name}}</span></td><td><span class="average">{{:value.rank}}</span></td><td><span class="average">{{:value.active}}</span></td></tr>
{{/if}}
{{/for}}
{{/if}}
{{if data.manifest.car.length}}
<tr><th colspan="3" class="car">Cargo</th></tr>
{{for data.manifest["car"]}}
{{if value.rank == "Quartermaster"}}
<tr><td><span class="good">{{:value.name}}</span></td><td><span class="good">{{:value.rank}}</span></td><td><span class="good">{{:value.active}}</span></td></tr>
{{else}}
<tr><td><span class="average">{{:value.name}}</span></td><td><span class="average">{{:value.rank}}</span></td><td><span class="average">{{:value.active}}</span></td></tr>
{{/if}}
{{/for}}
{{/if}}
{{if data.manifest.civ.length}}
<tr><th colspan="3" class="civ">Civilian</th></tr>
{{for data.manifest["civ"]}}
{{if value.rank == "Head of Personnel"}}
<tr><td><span class="good">{{:value.name}}</span></td><td><span class="good">{{:value.rank}}</span></td><td><span class="good">{{:value.active}}</span></td></tr>
{{else}}
<tr><td><span class="average">{{:value.name}}</span></td><td><span class="average">{{:value.rank}}</span></td><td><span class="average">{{:value.active}}</span></td></tr>
{{/if}}
{{/for}}
{{/if}}
{{if data.manifest.misc.length}}
<tr><th colspan="3" class="misc">Misc</th></tr>
{{for data.manifest["misc"]}}
<tr><td><span class="average">{{:value.name}}</span></td><td><span class="average">{{:value.rank}}</span></td><td><span class="average">{{:value.active}}</span></td></tr>
{{/for}}
{{/if}}
</tbody></table></center>
</div>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -197,6 +197,7 @@
#include "code\controllers\subsystems\lighting.dm"
#include "code\controllers\subsystems\machines.dm"
#include "code\controllers\subsystems\mobs.dm"
#include "code\controllers\subsystems\orbits.dm"
#include "code\controllers\subsystems\transcore_vr.dm"
#include "code\datums\ai_law_sets.dm"
#include "code\datums\ai_laws.dm"
@@ -213,6 +214,7 @@
#include "code\datums\mixed.dm"
#include "code\datums\modules.dm"
#include "code\datums\mutable_appearance.dm"
#include "code\datums\orbit.dm"
#include "code\datums\organs.dm"
#include "code\datums\progressbar.dm"
#include "code\datums\recipe.dm"
@@ -350,6 +352,7 @@
#include "code\datums\wires\smartfridge.dm"
#include "code\datums\wires\smes.dm"
#include "code\datums\wires\suit_storage_unit.dm"
#include "code\datums\wires\tesla_coil.dm"
#include "code\datums\wires\vending.dm"
#include "code\datums\wires\wires.dm"
#include "code\defines\gases.dm"
@@ -2299,6 +2302,11 @@
#include "code\modules\power\singularity\particle_accelerator\particle_power.dm"
#include "code\modules\power\supermatter\setup_supermatter.dm"
#include "code\modules\power\supermatter\supermatter.dm"
#include "code\modules\power\tesla\coil.dm"
#include "code\modules\power\tesla\energy_ball.dm"
#include "code\modules\power\tesla\generator.dm"
#include "code\modules\power\tesla\telsa_construction.dm"
#include "code\modules\power\tesla\tesla_act.dm"
#include "code\modules\projectiles\ammunition.dm"
#include "code\modules\projectiles\dnalocking.dm"
#include "code\modules\projectiles\effects.dm"