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
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
44
code/controllers/subsystems/orbits.dm
Normal 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
@@ -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)
|
||||
*/
|
||||
18
code/datums/wires/tesla_coil.dm
Normal 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()
|
||||
..()
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
133
code/modules/power/tesla/coil.dm
Normal 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
|
||||
..()
|
||||
298
code/modules/power/tesla/energy_ball.dm
Normal 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)
|
||||
10
code/modules/power/tesla/generator.dm
Normal 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
|
||||
31
code/modules/power/tesla/telsa_construction.dm
Normal 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
|
||||
68
code/modules/power/tesla/tesla_act.dm
Normal 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()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
6
html/changelogs/Leshana-tesla.yml
Normal 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"
|
||||
4
html/changelogs/Leshana-wikisearch.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: Leshana
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Wiki search URL is now configurable in config.txt"
|
||||
@@ -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."
|
||||
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 62 KiB |
BIN
icons/obj/tesla_engine/energy_ball.dmi
Normal file
|
After Width: | Height: | Size: 134 KiB |
BIN
icons/obj/tesla_engine/tesla_coil.dmi
Normal file
|
After Width: | Height: | Size: 10 KiB |
BIN
icons/obj/tesla_engine/tesla_generator.dmi
Normal file
|
After Width: | Height: | Size: 427 B |
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
"}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
59
maps/submaps/surface_submaps/mountains/CaveTrench.dmm
Normal 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
|
||||
"}
|
||||
56
maps/submaps/surface_submaps/mountains/Cavelake.dmm
Normal 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
|
||||
"}
|
||||
65
maps/submaps/surface_submaps/mountains/Rockb1.dmm
Normal 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
|
||||
"}
|
||||
@@ -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
|
||||
@@ -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"
|
||||
43
maps/submaps/surface_submaps/plains/Peninsula.dmm
Normal 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
|
||||
"}
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
@@ -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
|
||||
|
||||
40
maps/submaps/surface_submaps/wilderness/MHR.dmm
Normal 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
|
||||
"}
|
||||
170
maps/submaps/surface_submaps/wilderness/Rockybase.dmm
Normal 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
|
||||
"}
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
BIN
sound/effects/lightning_chargeup.ogg
Normal file
BIN
sound/effects/lightningbolt.ogg
Normal file
BIN
sound/effects/lightningshock.ogg
Normal 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"
|
||||
|
||||