Merge remote-tracking branch 'upstream/master' into second-autotransfer
@@ -1,11 +0,0 @@
|
||||
/*
|
||||
Toggle this var to 1 to compile using runtime station instead.
|
||||
Useful if you're constantly having to recompile to debug something.
|
||||
*/
|
||||
#define RUNTIME_STATION 0
|
||||
|
||||
#if RUNTIME_STATION
|
||||
#include "modular_chomp/maps/runtime/runtime_station_defines.dm"
|
||||
#include "modular_chomp/maps/runtime/runtime_station.dmm"
|
||||
#define USING_MAP_DATUM /datum/map/runtime_station
|
||||
#endif
|
||||
@@ -0,0 +1,11 @@
|
||||
//different types of atom colorations
|
||||
///only used by rare effects like greentext coloring mobs and when admins varedit color
|
||||
#define ADMIN_COLOUR_PRIORITY 1
|
||||
///e.g. purple effect of the revenant on a mob, black effect when mob electrocuted
|
||||
#define TEMPORARY_COLOUR_PRIORITY 2
|
||||
///color splashed onto an atom (e.g. paint on turf)
|
||||
#define WASHABLE_COLOUR_PRIORITY 3
|
||||
///color inherent to the atom (e.g. blob color)
|
||||
#define FIXED_COLOUR_PRIORITY 4
|
||||
///how many priority levels there are.
|
||||
#define COLOUR_PRIORITY_AMOUNT 4
|
||||
@@ -0,0 +1,4 @@
|
||||
//Luma coefficients suggested for HDTVs. If you change these, make sure they add up to 1.
|
||||
#define LUMA_R 0.213
|
||||
#define LUMA_G 0.715
|
||||
#define LUMA_B 0.072
|
||||
@@ -14,3 +14,5 @@
|
||||
#define MAT_CARPET_PINK "pink carpet"
|
||||
#define MAT_CARPET_PURPLE "purple carpet"
|
||||
#define MAT_CARPET_ORANGE "orange carpet"
|
||||
|
||||
#define PHASE_SHIELDED 16 // Prevents shadekin phasing in/out in this area
|
||||
@@ -962,15 +962,32 @@ var/global/list/selectable_speech_bubbles = list(
|
||||
"cyber",
|
||||
"ghost",
|
||||
"slime_green",
|
||||
"slime_yellow",
|
||||
"slime_red",
|
||||
"slime_blue",
|
||||
"dark",
|
||||
"plant",
|
||||
"clown",
|
||||
"fox",
|
||||
"latte_fox",
|
||||
"blue_fox",
|
||||
"maus",
|
||||
"wolf",
|
||||
"red_panda",
|
||||
"blue_panda",
|
||||
"tentacles",
|
||||
"heart",
|
||||
"textbox",
|
||||
"posessed",
|
||||
"square")
|
||||
"square",
|
||||
"medical",
|
||||
"medical_square",
|
||||
"cardiogram",
|
||||
"security",
|
||||
"notepad",
|
||||
"science",
|
||||
"engineering",
|
||||
"cargo")
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -80,8 +80,8 @@
|
||||
Blend(M, ICON_ADD)
|
||||
|
||||
/proc/BlendRGB(rgb1, rgb2, amount)
|
||||
var/list/RGB1 = rgb2num(rgb1)
|
||||
var/list/RGB2 = rgb2num(rgb2)
|
||||
var/list/RGB1 = ReadRGB(rgb1) //CHOMPEdit - Better rgb blend
|
||||
var/list/RGB2 = ReadRGB(rgb2)
|
||||
|
||||
// add missing alpha if needed
|
||||
if(RGB1.len < RGB2.len) RGB1 += 255
|
||||
|
||||
@@ -0,0 +1,661 @@
|
||||
/*
|
||||
IconProcs README
|
||||
|
||||
A BYOND library for manipulating icons and colors
|
||||
|
||||
by Lummox JR
|
||||
|
||||
version 1.0
|
||||
|
||||
The IconProcs library was made to make a lot of common icon operations much easier. BYOND's icon manipulation
|
||||
routines are very capable but some of the advanced capabilities like using alpha transparency can be unintuitive to beginners.
|
||||
|
||||
CHANGING ICONS
|
||||
|
||||
Several new procs have been added to the /icon datum to simplify working with icons. To use them,
|
||||
remember you first need to setup an /icon var like so:
|
||||
|
||||
GLOBAL_DATUM_INIT(my_icon, /icon, new('iconfile.dmi'))
|
||||
|
||||
icon/ChangeOpacity(amount = 1)
|
||||
A very common operation in DM is to try to make an icon more or less transparent. Making an icon more
|
||||
transparent is usually much easier than making it less so, however. This proc basically is a frontend
|
||||
for MapColors() which can change opacity any way you like, in much the same way that SetIntensity()
|
||||
can make an icon lighter or darker. If amount is 0.5, the opacity of the icon will be cut in half.
|
||||
If amount is 2, opacity is doubled and anything more than half-opaque will become fully opaque.
|
||||
icon/GrayScale()
|
||||
Converts the icon to grayscale instead of a fully colored icon. Alpha values are left intact.
|
||||
icon/ColorTone(tone)
|
||||
Similar to GrayScale(), this proc converts the icon to a range of black -> tone -> white, where tone is an
|
||||
RGB color (its alpha is ignored). This can be used to create a sepia tone or similar effect.
|
||||
See also the global ColorTone() proc.
|
||||
icon/MinColors(icon)
|
||||
The icon is blended with a second icon where the minimum of each RGB pixel is the result.
|
||||
Transparency may increase, as if the icons were blended with ICON_ADD. You may supply a color in place of an icon.
|
||||
icon/MaxColors(icon)
|
||||
The icon is blended with a second icon where the maximum of each RGB pixel is the result.
|
||||
Opacity may increase, as if the icons were blended with ICON_OR. You may supply a color in place of an icon.
|
||||
icon/Opaque(background = "#000000")
|
||||
All alpha values are set to 255 throughout the icon. Transparent pixels become black, or whatever background color you specify.
|
||||
icon/BecomeAlphaMask()
|
||||
You can convert a simple grayscale icon into an alpha mask to use with other icons very easily with this proc.
|
||||
The black parts become transparent, the white parts stay white, and anything in between becomes a translucent shade of white.
|
||||
icon/AddAlphaMask(mask)
|
||||
The alpha values of the mask icon will be blended with the current icon. Anywhere the mask is opaque,
|
||||
the current icon is untouched. Anywhere the mask is transparent, the current icon becomes transparent.
|
||||
Where the mask is translucent, the current icon becomes more transparent.
|
||||
icon/UseAlphaMask(mask, mode)
|
||||
Sometimes you may want to take the alpha values from one icon and use them on a different icon.
|
||||
This proc will do that. Just supply the icon whose alpha mask you want to use, and src will change
|
||||
so it has the same colors as before but uses the mask for opacity.
|
||||
|
||||
COLOR MANAGEMENT AND HSV
|
||||
|
||||
RGB isn't the only way to represent color. Sometimes it's more useful to work with a model called HSV, which stands for hue, saturation, and value.
|
||||
|
||||
* The hue of a color describes where it is along the color wheel. It goes from red to yellow to green to
|
||||
cyan to blue to magenta and back to red.
|
||||
* The saturation of a color is how much color is in it. A color with low saturation will be more gray,
|
||||
and with no saturation at all it is a shade of gray.
|
||||
* The value of a color determines how bright it is. A high-value color is vivid, moderate value is dark,
|
||||
and no value at all is black.
|
||||
|
||||
Just as BYOND uses "#rrggbb" to represent RGB values, a similar format is used for HSV: "#hhhssvv". The hue is three
|
||||
hex digits because it ranges from 0 to 0x5FF.
|
||||
|
||||
* 0 to 0xFF - red to yellow
|
||||
* 0x100 to 0x1FF - yellow to green
|
||||
* 0x200 to 0x2FF - green to cyan
|
||||
* 0x300 to 0x3FF - cyan to blue
|
||||
* 0x400 to 0x4FF - blue to magenta
|
||||
* 0x500 to 0x5FF - magenta to red
|
||||
|
||||
Knowing this, you can figure out that red is "#000ffff" in HSV format, which is hue 0 (red), saturation 255 (as colorful as possible),
|
||||
value 255 (as bright as possible). Green is "#200ffff" and blue is "#400ffff".
|
||||
|
||||
More than one HSV color can match the same RGB color.
|
||||
|
||||
Here are some procs you can use for color management:
|
||||
|
||||
ReadRGB(rgb)
|
||||
Takes an RGB string like "#ffaa55" and converts it to a list such as list(255,170,85). If an RGBA format is used
|
||||
that includes alpha, the list will have a fourth item for the alpha value.
|
||||
hsv(hue, sat, val, apha)
|
||||
Counterpart to rgb(), this takes the values you input and converts them to a string in "#hhhssvv" or "#hhhssvvaa"
|
||||
format. Alpha is not included in the result if null.
|
||||
ReadHSV(rgb)
|
||||
Takes an HSV string like "#100FF80" and converts it to a list such as list(256,255,128). If an HSVA format is used that
|
||||
includes alpha, the list will have a fourth item for the alpha value.
|
||||
RGBtoHSV(rgb)
|
||||
Takes an RGB or RGBA string like "#ffaa55" and converts it into an HSV or HSVA color such as "#080aaff".
|
||||
HSVtoRGB(hsv)
|
||||
Takes an HSV or HSVA string like "#080aaff" and converts it into an RGB or RGBA color such as "#ff55aa".
|
||||
BlendRGB(rgb1, rgb2, amount)
|
||||
Blends between two RGB or RGBA colors using regular RGB blending. If amount is 0, the first color is the result;
|
||||
if 1, the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well.
|
||||
The returned value is an RGB or RGBA color.
|
||||
BlendHSV(hsv1, hsv2, amount)
|
||||
Blends between two HSV or HSVA colors using HSV blending, which tends to produce nicer results than regular RGB
|
||||
blending because the brightness of the color is left intact. If amount is 0, the first color is the result; if 1,
|
||||
the second color is the result. 0.5 produces an average of the two. Values outside the 0 to 1 range are allowed as well.
|
||||
The returned value is an HSV or HSVA color.
|
||||
BlendRGBasHSV(rgb1, rgb2, amount)
|
||||
Like BlendHSV(), but the colors used and the return value are RGB or RGBA colors. The blending is done in HSV form.
|
||||
HueToAngle(hue)
|
||||
Converts a hue to an angle range of 0 to 360. Angle 0 is red, 120 is green, and 240 is blue.
|
||||
AngleToHue(hue)
|
||||
Converts an angle to a hue in the valid range.
|
||||
RotateHue(hsv, angle)
|
||||
Takes an HSV or HSVA value and rotates the hue forward through red, green, and blue by an angle from 0 to 360.
|
||||
(Rotating red by 60° produces yellow.) The result is another HSV or HSVA color with the same saturation and value
|
||||
as the original, but a different hue.
|
||||
GrayScale(rgb)
|
||||
Takes an RGB or RGBA color and converts it to grayscale. Returns an RGB or RGBA string.
|
||||
ColorTone(rgb, tone)
|
||||
Similar to GrayScale(), this proc converts an RGB or RGBA color to a range of black -> tone -> white instead of
|
||||
using strict shades of gray. The tone value is an RGB color; any alpha value is ignored.
|
||||
*/
|
||||
|
||||
/*
|
||||
Get Flat Icon DEMO by DarkCampainger
|
||||
|
||||
This is a test for the get flat icon proc, modified approprietly for icons and their states.
|
||||
Probably not a good idea to run this unless you want to see how the proc works in detail.
|
||||
mob
|
||||
icon = 'old_or_unused.dmi'
|
||||
icon_state = "green"
|
||||
|
||||
Login()
|
||||
// Testing image underlays
|
||||
underlays += image(icon='old_or_unused.dmi',icon_state="red")
|
||||
underlays += image(icon='old_or_unused.dmi',icon_state="red", pixel_x = 32)
|
||||
underlays += image(icon='old_or_unused.dmi',icon_state="red", pixel_x = -32)
|
||||
|
||||
// Testing image overlays
|
||||
add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = 32, pixel_y = -32))
|
||||
add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = 32, pixel_y = 32))
|
||||
add_overlay(image(icon='old_or_unused.dmi',icon_state="green", pixel_x = -32, pixel_y = -32))
|
||||
|
||||
// Testing icon file overlays (defaults to mob's state)
|
||||
add_overlay('_flat_demoIcons2.dmi')
|
||||
|
||||
// Testing icon_state overlays (defaults to mob's icon)
|
||||
add_overlay("white")
|
||||
|
||||
// Testing dynamic icon overlays
|
||||
var/icon/I = icon('old_or_unused.dmi', icon_state="aqua")
|
||||
I.Shift(NORTH,16,1)
|
||||
add_overlay(I)
|
||||
|
||||
// Testing dynamic image overlays
|
||||
I=image(icon=I,pixel_x = -32, pixel_y = 32)
|
||||
add_overlay(I)
|
||||
|
||||
// Testing object types (and layers)
|
||||
add_overlay(/obj/effect/overlayTest)
|
||||
|
||||
loc = locate (10,10,1)
|
||||
verb
|
||||
Browse_Icon()
|
||||
set name = "1. Browse Icon"
|
||||
// Give it a name for the cache
|
||||
var/iconName = "[ckey(src.name)]_flattened.dmi"
|
||||
// Send the icon to src's local cache
|
||||
src<<browse_rsc(get_flat_icon(src), iconName)
|
||||
// Display the icon in their browser
|
||||
src<<browse("<body bgcolor='#000000'><p><img src='[iconName]'></p></body>")
|
||||
|
||||
Output_Icon()
|
||||
set name = "2. Output Icon"
|
||||
to_chat(src, "Icon is: [icon2base64html(get_flat_icon(src))]")
|
||||
|
||||
Label_Icon()
|
||||
set name = "3. Label Icon"
|
||||
// Give it a name for the cache
|
||||
var/iconName = "[ckey(src.name)]_flattened.dmi"
|
||||
// Copy the file to the rsc manually
|
||||
var/icon/I = fcopy_rsc(get_flat_icon(src))
|
||||
// Send the icon to src's local cache
|
||||
src<<browse_rsc(I, iconName)
|
||||
// Update the label to show it
|
||||
winset(src,"imageLabel","image='[REF(I)]'");
|
||||
|
||||
Add_Overlay()
|
||||
set name = "4. Add Overlay"
|
||||
add_overlay(image(icon='old_or_unused.dmi',icon_state="yellow",pixel_x = rand(-64,32), pixel_y = rand(-64,32))
|
||||
|
||||
Stress_Test()
|
||||
set name = "5. Stress Test"
|
||||
for(var/i = 0 to 1000)
|
||||
// The third parameter forces it to generate a new one, even if it's already cached
|
||||
get_flat_icon(src,0,2)
|
||||
if(prob(5))
|
||||
Add_Overlay()
|
||||
Browse_Icon()
|
||||
|
||||
Cache_Test()
|
||||
set name = "6. Cache Test"
|
||||
for(var/i = 0 to 1000)
|
||||
get_flat_icon(src)
|
||||
Browse_Icon()
|
||||
|
||||
/obj/effect/overlayTest
|
||||
icon = 'old_or_unused.dmi'
|
||||
icon_state = "blue"
|
||||
pixel_x = -24
|
||||
pixel_y = 24
|
||||
layer = TURF_LAYER // Should appear below the rest of the overlays
|
||||
|
||||
world
|
||||
view = "7x7"
|
||||
maxx = 20
|
||||
maxy = 20
|
||||
maxz = 1
|
||||
*/
|
||||
|
||||
/*
|
||||
HSV format is represented as "#hhhssvv" or "#hhhssvvaa"
|
||||
|
||||
Hue ranges from 0 to 0x5ff (1535)
|
||||
|
||||
0x000 = red
|
||||
0x100 = yellow
|
||||
0x200 = green
|
||||
0x300 = cyan
|
||||
0x400 = blue
|
||||
0x500 = magenta
|
||||
|
||||
Saturation is from 0 to 0xff (255)
|
||||
|
||||
More saturation = more color
|
||||
Less saturation = more gray
|
||||
|
||||
Value ranges from 0 to 0xff (255)
|
||||
|
||||
Higher value means brighter color
|
||||
*/
|
||||
|
||||
/**
|
||||
* reads RGB or RGBA values to list
|
||||
* @return list(r, g, b) or list(r, g, b, a), values 0 to 255.
|
||||
*/
|
||||
/proc/ReadRGB(rgb)
|
||||
if(!rgb)
|
||||
return
|
||||
|
||||
// interpret the HSV or HSVA value
|
||||
var/i=1,start=1
|
||||
if(text2ascii(rgb) == 35) ++start // skip opening #
|
||||
var/ch,which=0,r=0,g=0,b=0,alpha=0,usealpha
|
||||
var/digits=0
|
||||
for(i=start, i<=length(rgb), ++i)
|
||||
ch = text2ascii(rgb, i)
|
||||
if(ch < 48 || (ch > 57 && ch < 65) || (ch > 70 && ch < 97) || ch > 102)
|
||||
break
|
||||
++digits
|
||||
if(digits == 8)
|
||||
break
|
||||
|
||||
var/single = digits < 6
|
||||
if(digits != 3 && digits != 4 && digits != 6 && digits != 8)
|
||||
return
|
||||
if(digits == 4 || digits == 8)
|
||||
usealpha = 1
|
||||
for(i=start, digits>0, ++i)
|
||||
ch = text2ascii(rgb, i)
|
||||
if(ch >= 48 && ch <= 57)
|
||||
ch -= 48
|
||||
else if(ch >= 65 && ch <= 70)
|
||||
ch -= 55
|
||||
else if(ch >= 97 && ch <= 102)
|
||||
ch -= 87
|
||||
else
|
||||
break
|
||||
--digits
|
||||
switch(which)
|
||||
if(0)
|
||||
r = (r << 4) | ch
|
||||
if(single)
|
||||
r |= r << 4
|
||||
++which
|
||||
else if(!(digits & 1))
|
||||
++which
|
||||
if(1)
|
||||
g = (g << 4) | ch
|
||||
if(single)
|
||||
g |= g << 4
|
||||
++which
|
||||
else if(!(digits & 1))
|
||||
++which
|
||||
if(2)
|
||||
b = (b << 4) | ch
|
||||
if(single)
|
||||
b |= b << 4
|
||||
++which
|
||||
else if(!(digits & 1))
|
||||
++which
|
||||
if(3)
|
||||
alpha = (alpha << 4) | ch
|
||||
if(single)
|
||||
alpha |= alpha << 4
|
||||
|
||||
. = list(r, g, b)
|
||||
if(usealpha)
|
||||
. += alpha
|
||||
|
||||
/proc/ReadHSV(hsv)
|
||||
if(!hsv)
|
||||
return
|
||||
|
||||
// interpret the HSV or HSVA value
|
||||
var/i=1,start=1
|
||||
if(text2ascii(hsv) == 35)
|
||||
++start // skip opening #
|
||||
var/ch,which=0,hue=0,sat=0,val=0,alpha=0,usealpha
|
||||
var/digits=0
|
||||
for(i=start, i<=length(hsv), ++i)
|
||||
ch = text2ascii(hsv, i)
|
||||
if(ch < 48 || (ch > 57 && ch < 65) || (ch > 70 && ch < 97) || ch > 102)
|
||||
break
|
||||
++digits
|
||||
if(digits == 9)
|
||||
break
|
||||
if(digits > 7)
|
||||
usealpha = 1
|
||||
if(digits <= 4)
|
||||
++which
|
||||
if(digits <= 2)
|
||||
++which
|
||||
for(i=start, digits>0, ++i)
|
||||
ch = text2ascii(hsv, i)
|
||||
if(ch >= 48 && ch <= 57)
|
||||
ch -= 48
|
||||
else if(ch >= 65 && ch <= 70)
|
||||
ch -= 55
|
||||
else if(ch >= 97 && ch <= 102)
|
||||
ch -= 87
|
||||
else
|
||||
break
|
||||
--digits
|
||||
switch(which)
|
||||
if(0)
|
||||
hue = (hue << 4) | ch
|
||||
if(digits == (usealpha ? 6 : 4))
|
||||
++which
|
||||
if(1)
|
||||
sat = (sat << 4) | ch
|
||||
if(digits == (usealpha ? 4 : 2))
|
||||
++which
|
||||
if(2)
|
||||
val = (val << 4) | ch
|
||||
if(digits == (usealpha ? 2 : 0))
|
||||
++which
|
||||
if(3)
|
||||
alpha = (alpha << 4) | ch
|
||||
|
||||
. = list(hue, sat, val)
|
||||
if(usealpha)
|
||||
. += alpha
|
||||
|
||||
/proc/HSVtoRGB(hsv)
|
||||
if(!hsv)
|
||||
return "#000000"
|
||||
var/list/HSV = ReadHSV(hsv)
|
||||
if(!HSV)
|
||||
return "#000000"
|
||||
|
||||
var/hue = HSV[1]
|
||||
var/sat = HSV[2]
|
||||
var/val = HSV[3]
|
||||
|
||||
// Compress hue into easier-to-manage range
|
||||
hue -= hue >> 8
|
||||
if(hue >= 0x5fa)
|
||||
hue -= 0x5fa
|
||||
|
||||
var/hi,mid,lo,r,g,b
|
||||
hi = val
|
||||
lo = round((255 - sat) * val / 255, 1)
|
||||
mid = lo + round(abs(round(hue, 510) - hue) * (hi - lo) / 255, 1)
|
||||
if(hue >= 765)
|
||||
if(hue >= 1275) {r=hi; g=lo; b=mid}
|
||||
else if(hue >= 1020) {r=mid; g=lo; b=hi }
|
||||
else {r=lo; g=mid; b=hi }
|
||||
else
|
||||
if(hue >= 510) {r=lo; g=hi; b=mid}
|
||||
else if(hue >= 255) {r=mid; g=hi; b=lo }
|
||||
else {r=hi; g=mid; b=lo }
|
||||
|
||||
return (HSV.len > 3) ? rgb(r,g,b,HSV[4]) : rgb(r,g,b)
|
||||
|
||||
/proc/RGBtoHSV(rgb)
|
||||
if(!rgb)
|
||||
return "#0000000"
|
||||
var/list/RGB = ReadRGB(rgb)
|
||||
if(!RGB)
|
||||
return "#0000000"
|
||||
|
||||
var/r = RGB[1]
|
||||
var/g = RGB[2]
|
||||
var/b = RGB[3]
|
||||
var/hi = max(r,g,b)
|
||||
var/lo = min(r,g,b)
|
||||
|
||||
var/val = hi
|
||||
var/sat = hi ? round((hi-lo) * 255 / hi, 1) : 0
|
||||
var/hue = 0
|
||||
|
||||
if(sat)
|
||||
var/dir
|
||||
var/mid
|
||||
if(hi == r)
|
||||
if(lo == b) {hue=0; dir=1; mid=g}
|
||||
else {hue=1535; dir=-1; mid=b}
|
||||
else if(hi == g)
|
||||
if(lo == r) {hue=512; dir=1; mid=b}
|
||||
else {hue=511; dir=-1; mid=r}
|
||||
else if(hi == b)
|
||||
if(lo == g) {hue=1024; dir=1; mid=r}
|
||||
else {hue=1023; dir=-1; mid=g}
|
||||
hue += dir * round((mid-lo) * 255 / (hi-lo), 1)
|
||||
|
||||
return hsv(hue, sat, val, (RGB.len>3 ? RGB[4] : null))
|
||||
|
||||
/proc/hsv(hue, sat, val, alpha)
|
||||
if(hue < 0 || hue >= 1536)
|
||||
hue %= 1536
|
||||
if(hue < 0)
|
||||
hue += 1536
|
||||
if((hue & 0xFF) == 0xFF)
|
||||
++hue
|
||||
if(hue >= 1536)
|
||||
hue = 0
|
||||
if(sat < 0)
|
||||
sat = 0
|
||||
if(sat > 255)
|
||||
sat = 255
|
||||
if(val < 0)
|
||||
val = 0
|
||||
if(val > 255)
|
||||
val = 255
|
||||
. = "#"
|
||||
. += TO_HEX_DIGIT(hue >> 8)
|
||||
. += TO_HEX_DIGIT(hue >> 4)
|
||||
. += TO_HEX_DIGIT(hue)
|
||||
. += TO_HEX_DIGIT(sat >> 4)
|
||||
. += TO_HEX_DIGIT(sat)
|
||||
. += TO_HEX_DIGIT(val >> 4)
|
||||
. += TO_HEX_DIGIT(val)
|
||||
if(!isnull(alpha))
|
||||
if(alpha < 0)
|
||||
alpha = 0
|
||||
if(alpha > 255)
|
||||
alpha = 255
|
||||
. += TO_HEX_DIGIT(alpha >> 4)
|
||||
. += TO_HEX_DIGIT(alpha)
|
||||
|
||||
/*
|
||||
Smooth blend between HSV colors
|
||||
|
||||
amount=0 is the first color
|
||||
amount=1 is the second color
|
||||
amount=0.5 is directly between the two colors
|
||||
|
||||
amount<0 or amount>1 are allowed
|
||||
*/
|
||||
/proc/BlendHSV(hsv1, hsv2, amount)
|
||||
var/list/HSV1 = ReadHSV(hsv1)
|
||||
var/list/HSV2 = ReadHSV(hsv2)
|
||||
|
||||
// add missing alpha if needed
|
||||
if(HSV1.len < HSV2.len)
|
||||
HSV1 += 255
|
||||
else if(HSV2.len < HSV1.len)
|
||||
HSV2 += 255
|
||||
var/usealpha = HSV1.len > 3
|
||||
|
||||
// normalize hsv values in case anything is screwy
|
||||
if(HSV1[1] > 1536)
|
||||
HSV1[1] %= 1536
|
||||
if(HSV2[1] > 1536)
|
||||
HSV2[1] %= 1536
|
||||
if(HSV1[1] < 0)
|
||||
HSV1[1] += 1536
|
||||
if(HSV2[1] < 0)
|
||||
HSV2[1] += 1536
|
||||
if(!HSV1[3]) {HSV1[1] = 0; HSV1[2] = 0}
|
||||
if(!HSV2[3]) {HSV2[1] = 0; HSV2[2] = 0}
|
||||
|
||||
// no value for one color means don't change saturation
|
||||
if(!HSV1[3])
|
||||
HSV1[2] = HSV2[2]
|
||||
if(!HSV2[3])
|
||||
HSV2[2] = HSV1[2]
|
||||
// no saturation for one color means don't change hues
|
||||
if(!HSV1[2])
|
||||
HSV1[1] = HSV2[1]
|
||||
if(!HSV2[2])
|
||||
HSV2[1] = HSV1[1]
|
||||
|
||||
// Compress hues into easier-to-manage range
|
||||
HSV1[1] -= HSV1[1] >> 8
|
||||
HSV2[1] -= HSV2[1] >> 8
|
||||
|
||||
var/hue_diff = HSV2[1] - HSV1[1]
|
||||
if(hue_diff > 765)
|
||||
hue_diff -= 1530
|
||||
else if(hue_diff <= -765)
|
||||
hue_diff += 1530
|
||||
|
||||
var/hue = round(HSV1[1] + hue_diff * amount, 1)
|
||||
var/sat = round(HSV1[2] + (HSV2[2] - HSV1[2]) * amount, 1)
|
||||
var/val = round(HSV1[3] + (HSV2[3] - HSV1[3]) * amount, 1)
|
||||
var/alpha = usealpha ? round(HSV1[4] + (HSV2[4] - HSV1[4]) * amount, 1) : null
|
||||
|
||||
// normalize hue
|
||||
if(hue < 0 || hue >= 1530)
|
||||
hue %= 1530
|
||||
if(hue < 0)
|
||||
hue += 1530
|
||||
// decompress hue
|
||||
hue += round(hue / 255)
|
||||
|
||||
return hsv(hue, sat, val, alpha)
|
||||
|
||||
/proc/BlendRGBasHSV(rgb1, rgb2, amount)
|
||||
return HSVtoRGB(RGBtoHSV(rgb1), RGBtoHSV(rgb2), amount)
|
||||
|
||||
/proc/HueToAngle(hue)
|
||||
// normalize hsv in case anything is screwy
|
||||
if(hue < 0 || hue >= 1536)
|
||||
hue %= 1536
|
||||
if(hue < 0)
|
||||
hue += 1536
|
||||
// Compress hue into easier-to-manage range
|
||||
hue -= hue >> 8
|
||||
return hue / (1530/360)
|
||||
|
||||
/proc/AngleToHue(angle)
|
||||
// normalize hsv in case anything is screwy
|
||||
if(angle < 0 || angle >= 360)
|
||||
angle -= 360 * round(angle / 360)
|
||||
var/hue = angle * (1530/360)
|
||||
// Decompress hue
|
||||
hue += round(hue / 255)
|
||||
return hue
|
||||
|
||||
|
||||
// positive angle rotates forward through red->green->blue
|
||||
/proc/RotateHue(hsv, angle)
|
||||
var/list/HSV = ReadHSV(hsv)
|
||||
|
||||
// normalize hsv in case anything is screwy
|
||||
if(HSV[1] >= 1536)
|
||||
HSV[1] %= 1536
|
||||
if(HSV[1] < 0)
|
||||
HSV[1] += 1536
|
||||
|
||||
// Compress hue into easier-to-manage range
|
||||
HSV[1] -= HSV[1] >> 8
|
||||
|
||||
if(angle < 0 || angle >= 360)
|
||||
angle -= 360 * round(angle / 360)
|
||||
HSV[1] = round(HSV[1] + angle * (1530/360), 1)
|
||||
|
||||
// normalize hue
|
||||
if(HSV[1] < 0 || HSV[1] >= 1530)
|
||||
HSV[1] %= 1530
|
||||
if(HSV[1] < 0)
|
||||
HSV[1] += 1530
|
||||
// decompress hue
|
||||
HSV[1] += round(HSV[1] / 255)
|
||||
|
||||
return hsv(HSV[1], HSV[2], HSV[3], (HSV.len > 3 ? HSV[4] : null))
|
||||
|
||||
// Convert an rgb color to grayscale
|
||||
/proc/GrayScale(rgb)
|
||||
var/list/RGB = ReadRGB(rgb)
|
||||
var/gray = RGB[1]*0.3 + RGB[2]*0.59 + RGB[3]*0.11
|
||||
return (RGB.len > 3) ? rgb(gray, gray, gray, RGB[4]) : rgb(gray, gray, gray)
|
||||
|
||||
// Change grayscale color to black->tone->white range
|
||||
/proc/ColorTone(rgb, tone)
|
||||
var/list/RGB = ReadRGB(rgb)
|
||||
var/list/TONE = ReadRGB(tone)
|
||||
|
||||
var/gray = RGB[1]*0.3 + RGB[2]*0.59 + RGB[3]*0.11
|
||||
var/tone_gray = TONE[1]*0.3 + TONE[2]*0.59 + TONE[3]*0.11
|
||||
|
||||
if(gray <= tone_gray)
|
||||
return BlendRGB("#000000", tone, gray/(tone_gray || 1))
|
||||
else
|
||||
return BlendRGB(tone, "#ffffff", (gray-tone_gray)/((255-tone_gray) || 1))
|
||||
|
||||
|
||||
//Used in the OLD chem colour mixing algorithm
|
||||
/proc/GetColors(hex)
|
||||
hex = uppertext(hex)
|
||||
// No alpha set? Default to full alpha.
|
||||
if(length(hex) == 7)
|
||||
hex += "FF"
|
||||
var/hi1 = text2ascii(hex, 2) // R
|
||||
var/lo1 = text2ascii(hex, 3) // R
|
||||
var/hi2 = text2ascii(hex, 4) // G
|
||||
var/lo2 = text2ascii(hex, 5) // G
|
||||
var/hi3 = text2ascii(hex, 6) // B
|
||||
var/lo3 = text2ascii(hex, 7) // B
|
||||
var/hi4 = text2ascii(hex, 8) // A
|
||||
var/lo4 = text2ascii(hex, 9) // A
|
||||
return list(((hi1>= 65 ? hi1-55 : hi1-48)<<4) | (lo1 >= 65 ? lo1-55 : lo1-48),
|
||||
((hi2 >= 65 ? hi2-55 : hi2-48)<<4) | (lo2 >= 65 ? lo2-55 : lo2-48),
|
||||
((hi3 >= 65 ? hi3-55 : hi3-48)<<4) | (lo3 >= 65 ? lo3-55 : lo3-48),
|
||||
((hi4 >= 65 ? hi4-55 : hi4-48)<<4) | (lo4 >= 65 ? lo4-55 : lo4-48))
|
||||
|
||||
//Interface for using DrawBox() to draw 1 pixel on a coordinate.
|
||||
//Returns the same icon specifed in the argument, but with the pixel drawn
|
||||
/proc/DrawPixel(icon/I,colour,drawX,drawY)
|
||||
if(!I)
|
||||
return 0
|
||||
|
||||
var/Iwidth = I.Width()
|
||||
var/Iheight = I.Height()
|
||||
|
||||
if(drawX > Iwidth || drawX <= 0)
|
||||
return 0
|
||||
if(drawY > Iheight || drawY <= 0)
|
||||
return 0
|
||||
|
||||
I.DrawBox(colour,drawX, drawY)
|
||||
return I
|
||||
|
||||
|
||||
//Interface for easy drawing of one pixel on an atom.
|
||||
/atom/proc/DrawPixelOn(colour, drawX, drawY)
|
||||
var/icon/I = new(icon)
|
||||
var/icon/J = DrawPixel(I, colour, drawX, drawY)
|
||||
if(J) //Only set the icon if it succeeded, the icon without the pixel is 1000x better than a black square.
|
||||
icon = J
|
||||
return J
|
||||
return 0
|
||||
|
||||
//Hook, override to run code on- wait this is images
|
||||
//Images have dir without being an atom, so they get their own definition.
|
||||
//Lame.
|
||||
/image/proc/setDir(newdir)
|
||||
dir = newdir
|
||||
|
||||
/* Gives the result RGB of a RGB string after a matrix transformation. No alpha.
|
||||
* Input: rr, rg, rb, gr, gg, gb, br, bg, bb, cr, cg, cb
|
||||
* Output: RGB string
|
||||
*/
|
||||
/proc/RGBMatrixTransform(list/color, list/cm)
|
||||
ASSERT(cm.len >= 9)
|
||||
if(cm.len < 12) // fill in the rest
|
||||
for(var/i in 1 to (12 - cm.len))
|
||||
cm += 0
|
||||
if(!islist(color))
|
||||
color = ReadRGB(color)
|
||||
color[1] = color[1] * cm[1] + color[2] * cm[2] + color[3] * cm[3] + cm[10] * 255
|
||||
color[2] = color[1] * cm[4] + color[2] * cm[5] + color[3] * cm[6] + cm[11] * 255
|
||||
color[3] = color[1] * cm[7] + color[2] * cm[8] + color[3] * cm[9] + cm[12] * 255
|
||||
return rgb(color[1], color[2], color[3])
|
||||
@@ -1823,7 +1823,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
|
||||
name = "\improper Vault"
|
||||
icon_state = "nuke_storage"
|
||||
ambience = AMBIENCE_HIGHSEC
|
||||
limit_shadekin_phasing = TRUE // CHOMPEdit
|
||||
|
||||
/area/security/checkpoint
|
||||
name = "\improper Security Checkpoint"
|
||||
|
||||
@@ -126,3 +126,6 @@
|
||||
limit_dark_respite = TRUE
|
||||
ambience = AMBIENCE_OTHERWORLDLY
|
||||
flags = RAD_SHIELDED | AREA_FLAG_IS_NOT_PERSISTENT | BLUE_SHIELDED
|
||||
|
||||
/area/security/nuke_storage
|
||||
flags = PHASE_SHIELDED
|
||||
@@ -1,3 +1,2 @@
|
||||
/area
|
||||
var/limit_shadekin_phasing = FALSE //Allows setting areas where shadekin cannot phase in/out
|
||||
var/limit_dark_respite = FALSE // Shadekin will die normally in an area where this is set to true
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
|
||||
/datum/job/emergency_responder/get_access()
|
||||
return get_all_accesses().Copy()
|
||||
|
||||
/* CHOMPEDIT: Removing Clown/Mime job from being initialized at all (These are alt titles of Entertainer on our codebase)
|
||||
/datum/job/clown
|
||||
title = "Clown"
|
||||
flag = CLOWN
|
||||
@@ -157,3 +157,4 @@
|
||||
return list(access_maint_tunnels, access_entertainment, access_tomfoolery, access_mime)
|
||||
else
|
||||
return list(access_entertainment, access_tomfoolery, access_mime)
|
||||
*/ //CHOMPEDIT: END remove Mime/clown defines (These are alt titles of Entertainer on our codebase)
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/* CHOMPStation edit - File overidden. See modular_chomp/code/game/machinery/colormate.dm
|
||||
|
||||
// I'm honestly pretty sure that short of stuffing five million things into this
|
||||
// there's absolutely no way it could ever have any performance impact
|
||||
// Given that all it does is set the color var
|
||||
@@ -115,3 +117,4 @@
|
||||
. = TRUE
|
||||
|
||||
update_icon()
|
||||
/*
|
||||
@@ -64,4 +64,35 @@
|
||||
/obj/item/trash/ratpackturkey
|
||||
name = "\improper Prepackaged Meal Tray"
|
||||
icon = 'icons/obj/trash_vr.dmi'
|
||||
icon_state = "altevian_pack_turkey-trash"
|
||||
icon_state = "altevian_pack_turkey-trash"
|
||||
|
||||
/obj/item/trash/ratpackramen
|
||||
name = "\improper Prepackaged Meal Tray"
|
||||
icon = 'icons/obj/trash_vr.dmi'
|
||||
icon_state = "altevian_pack_ramen_standard-trash"
|
||||
|
||||
/obj/item/trash/ratpackramen/standard
|
||||
icon_state = "altevian_pack_ramen_standard-trash"
|
||||
|
||||
/obj/item/trash/ratpackramen/lacquer1
|
||||
icon_state = "altevian_pack_ramen_lacquer1-trash"
|
||||
|
||||
/obj/item/trash/ratpackramen/lacquer2
|
||||
icon_state = "altevian_pack_ramen_lacquer2-trash"
|
||||
|
||||
/obj/item/trash/ratpackramen/lacquer3
|
||||
icon_state = "altevian_pack_ramen_lacquer3-trash"
|
||||
|
||||
/obj/item/trash/ratpackramen/fleet
|
||||
icon_state = "altevian_pack_ramen_fleet-trash"
|
||||
|
||||
/obj/item/trash/ratpackramen/trans
|
||||
icon_state = "altevian_pack_ramen_trans-trash"
|
||||
|
||||
/obj/item/trash/ratpackramen/ace
|
||||
icon_state = "altevian_pack_ramen_ace-trash"
|
||||
|
||||
/obj/item/trash/ratpacktaco
|
||||
name = "\improper Prepackaged Meal Tray"
|
||||
icon = 'icons/obj/trash_vr.dmi'
|
||||
icon_state = "altevian_pack_taco-trash"
|
||||
@@ -30,7 +30,7 @@
|
||||
if(istype(O, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/I = O
|
||||
src.access |= I.access
|
||||
if(player_is_antag(user.mind))
|
||||
if(player_is_antag(user.mind) || registered_user == user)
|
||||
to_chat(user, "<span class='notice'>The microscanner activates as you pass it over the ID, copying its access.</span>")
|
||||
|
||||
/obj/item/weapon/card/id/syndicate/attack_self(mob/user as mob)
|
||||
|
||||
@@ -40,7 +40,14 @@
|
||||
/datum/gear_tweak/color/tweak_item(var/obj/item/I, var/metadata)
|
||||
if(valid_colors && !(metadata in valid_colors))
|
||||
return
|
||||
I.color = metadata
|
||||
//CHOMPEdit start
|
||||
if(!metadata || (metadata == "#ffffff"))
|
||||
return
|
||||
if(istype(I))
|
||||
I.add_atom_colour(metadata, FIXED_COLOUR_PRIORITY)
|
||||
else
|
||||
I.color = metadata // fuck off underwear
|
||||
//CHOMPEdit end
|
||||
|
||||
/*
|
||||
* Path adjustment
|
||||
|
||||
@@ -264,7 +264,7 @@ var/list/gear_datums = list()
|
||||
if(!description)
|
||||
var/obj/O = path
|
||||
description = initial(O.desc)
|
||||
gear_tweaks = list(gear_tweak_free_name, gear_tweak_free_desc, gear_tweak_item_tf_spawn) //CHOMPEdit - Item TF spawnpoints
|
||||
gear_tweaks = list(gear_tweak_free_name, gear_tweak_free_desc, gear_tweak_item_tf_spawn, GLOB.gear_tweak_free_matrix_recolor) //CHOMPEdit - Item TF spawnpoints
|
||||
|
||||
/datum/gear_data
|
||||
var/path
|
||||
|
||||
@@ -98,3 +98,9 @@ Talon hats
|
||||
/datum/gear/head/beret/talon
|
||||
display_name = "beret, Talon"
|
||||
path = /obj/item/clothing/head/beret
|
||||
|
||||
// tiny tophat
|
||||
|
||||
/datum/gear/head/tiny_tophat
|
||||
display_name = "tiny tophat"
|
||||
path = /obj/item/clothing/head/tinytophat
|
||||
|
||||
@@ -369,4 +369,10 @@ Talon jumpsuit
|
||||
"jumper skirt"=/obj/item/clothing/under/skirt/colorable/jumper,
|
||||
"jumper dress"=/obj/item/clothing/under/skirt/colorable/jumperdress
|
||||
)
|
||||
gear_tweaks += list(new/datum/gear_tweak/path(skirts), gear_tweak_free_color_choice)
|
||||
gear_tweaks += list(new/datum/gear_tweak/path(skirts), gear_tweak_free_color_choice)
|
||||
|
||||
// gwen beedells clown clothes
|
||||
|
||||
/datum/gear/uniform/stripeddungarees
|
||||
display_name = "striped dungarees"
|
||||
path = /obj/item/clothing/under/stripeddungarees
|
||||
@@ -163,3 +163,12 @@
|
||||
sprite_sheets = list(
|
||||
SPECIES_TESHARI = 'icons/inventory/head/mob_vr_teshari.dmi'
|
||||
)
|
||||
|
||||
// tiny tophat
|
||||
|
||||
/obj/item/clothing/head/tinytophat
|
||||
name = "tiny tophat"
|
||||
desc = "A tophat that is far too small to properly sit on someone's head!"
|
||||
icon = 'icons/inventory/head/item_vr.dmi'
|
||||
default_worn_icon = 'icons/inventory/head/mob_vr.dmi'
|
||||
icon_state = "tiny_tophat"
|
||||
|
||||
@@ -19,24 +19,29 @@
|
||||
name = "Altevian Hegemony Security Pants"
|
||||
icon_state = "altevian-pants-sec"
|
||||
worn_state = "altevian-pants-sec"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
siemens_coefficient = 0.9
|
||||
starting_accessories = list(/obj/item/clothing/accessory/jacket/altevian/security)
|
||||
|
||||
/obj/item/clothing/under/pants/altevian/engineering
|
||||
name = "Altevian Hegemony Engineering Pants"
|
||||
icon_state = "altevian-pants-eng"
|
||||
worn_state = "altevian-pants-eng"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
starting_accessories = list(/obj/item/clothing/accessory/jacket/altevian/engineering)
|
||||
|
||||
/obj/item/clothing/under/pants/altevian/medical
|
||||
name = "Altevian Hegemony Medical Pants"
|
||||
icon_state = "altevian-pants-med"
|
||||
worn_state = "altevian-pants-med"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
starting_accessories = list(/obj/item/clothing/accessory/jacket/altevian/medical)
|
||||
|
||||
/obj/item/clothing/under/pants/altevian/science
|
||||
name = "Altevian Hegemony Science Pants"
|
||||
icon_state = "altevian-pants-sci"
|
||||
worn_state = "altevian-pants-sci"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
|
||||
starting_accessories = list(/obj/item/clothing/accessory/jacket/altevian/science)
|
||||
|
||||
/obj/item/clothing/under/pants/altevian/cargo
|
||||
@@ -56,20 +61,25 @@
|
||||
|
||||
/obj/item/clothing/under/altevian/sci
|
||||
name = "Altevian Science Duty Jumpsuit"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
|
||||
icon_state = "altevian-specialist-sci"
|
||||
worn_state = "altevian-specialist-sci"
|
||||
|
||||
/obj/item/clothing/under/altevian/med
|
||||
name = "Altevian Medical Duty Jumpsuit"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0)
|
||||
icon_state = "altevian-specialist-med"
|
||||
worn_state = "altevian-specialist-med"
|
||||
|
||||
/obj/item/clothing/under/altevian/sec
|
||||
name = "Altevian Security Duty Jumpsuit"
|
||||
armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
siemens_coefficient = 0.9
|
||||
icon_state = "altevian-specialist-sec"
|
||||
worn_state = "altevian-specialist-sec"
|
||||
|
||||
/obj/item/clothing/under/altevian/eng
|
||||
name = "Altevian Engineering Duty Jumpsuit"
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10)
|
||||
icon_state = "altevian-specialist-eng"
|
||||
worn_state = "altevian-specialist-eng"
|
||||
@@ -586,4 +586,13 @@
|
||||
desc = "A dress held up by suspenders. Not quite a skirt anymore."
|
||||
icon_state = "skirt_jumperdress"
|
||||
item_state = "skirt_jumperdress"
|
||||
worn_state = "skirt_jumperdress"
|
||||
worn_state = "skirt_jumperdress"
|
||||
|
||||
// Gwen Beedell's clown outfit
|
||||
|
||||
/obj/item/clothing/under/stripeddungarees
|
||||
name = "striped dungarees"
|
||||
desc = "A colourful set of striped dungarees, pretty funny lookin'."
|
||||
icon = 'icons/inventory/uniform/item_vr.dmi'
|
||||
default_worn_icon = 'icons/inventory/uniform/mob_vr.dmi'
|
||||
icon_state = "striped_clown_uniform"
|
||||
|
||||
@@ -34,20 +34,21 @@
|
||||
SSradiation.z_radiate(locate(1, 1, z), radiation_level, 1)
|
||||
|
||||
for(var/mob/living/carbon/C in living_mob_list)
|
||||
var/area/A = get_area(C)
|
||||
if(!A)
|
||||
continue
|
||||
if(A.flags & RAD_SHIELDED)
|
||||
continue
|
||||
if(istype(C,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if(prob(5))
|
||||
if (prob(75))
|
||||
randmutb(H) // Applies bad mutation
|
||||
domutcheck(H,null,MUTCHK_FORCED)
|
||||
else
|
||||
randmutg(H) // Applies good mutation
|
||||
domutcheck(H,null,MUTCHK_FORCED)
|
||||
if((C.z in using_map.station_levels) && !C.isSynthetic()) //CHOMPEdit
|
||||
var/area/A = get_area(C)
|
||||
if(!A)
|
||||
continue
|
||||
if(A.flags & RAD_SHIELDED)
|
||||
continue
|
||||
if(istype(C,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if(prob(5))
|
||||
if (prob(75))
|
||||
randmutb(H) // Applies bad mutation
|
||||
domutcheck(H,null,MUTCHK_FORCED)
|
||||
else
|
||||
randmutg(H) // Applies good mutation
|
||||
domutcheck(H,null,MUTCHK_FORCED)
|
||||
|
||||
/datum/event/radiation_storm/end()
|
||||
revoke_maint_all_access()
|
||||
|
||||
@@ -864,7 +864,7 @@
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/ratpackturkey
|
||||
name = "Compact Holiday Special Bird"
|
||||
desc = "A great gift for holidays for assorted species. This contains a full freshly cooked turkey. Open and enjoy. Courtesy of altevian packaging"
|
||||
desc = "A great gift for holidays for assorted species. This contains a full freshly cooked turkey. Open and enjoy. Courtesy of altevian packaging."
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "altevian_pack_turkey"
|
||||
package_open_state = "altevian_pack_turkey-open"
|
||||
@@ -873,3 +873,43 @@
|
||||
trash = /obj/item/trash/ratpackturkey
|
||||
nutriment_amt = 18
|
||||
nutriment_desc = list("high-quality poultry" = 4)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/ratpackramen
|
||||
name = "Big Noodle Package"
|
||||
desc = "A pack containing fully cooked ramen meal, alongside some seafood-and-rice based sides. Utensils included. For those who prefer more traditional meals."
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "altevian_pack_ramen"
|
||||
package_open_state = "altevian_pack_ramen_standard-open"
|
||||
package_opening_state = "altevian_pack_ramen_standard-opening"
|
||||
package = TRUE
|
||||
trash = /obj/item/trash/ratpackramen/standard
|
||||
nutriment_amt = 2
|
||||
nutriment_desc = list("savory noodles" = 4)
|
||||
var/list/bowl_color_options = list("standard" = 6,
|
||||
"lacquer1" = 2,
|
||||
"lacquer2" = 2,
|
||||
"lacquer3" = 2,
|
||||
"fleet" = 6,
|
||||
"trans" = 3,
|
||||
"ace" = 3)
|
||||
var/randomize_bowl_color = TRUE
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/ratpackramen/Initialize()
|
||||
. = ..()
|
||||
if(randomize_bowl_color)
|
||||
var/bowl_color = pickweight(bowl_color_options)
|
||||
package_open_state = "altevian_pack_ramen_[bowl_color]-open"
|
||||
package_opening_state = "altevian_pack_ramen_[bowl_color]-opening"
|
||||
trash = text2path("/obj/item/trash/ratpackramen/[bowl_color]")
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/snacks/ratpacktaco
|
||||
name = "Triple Taco Tuck"
|
||||
desc = "Three mini-tacos, minituarized further via altevian mad science into a convenient container. It comes with a salsa sauce!"
|
||||
icon = 'icons/obj/food_vr.dmi'
|
||||
icon_state = "altevian_pack_taco"
|
||||
package_open_state = "altevian_pack_taco-open"
|
||||
package_opening_state = "altevian_pack_taco-opening"
|
||||
package = TRUE
|
||||
trash = /obj/item/trash/ratpacktaco
|
||||
nutriment_amt = 2
|
||||
nutriment_desc = list("salsa sauce" = 2, "meat chunks" = 4, "cheese" = 3)
|
||||
|
||||
@@ -228,6 +228,7 @@
|
||||
H.adjustBruteLoss((-0.25))
|
||||
H.adjustToxLoss((-0.25))
|
||||
H.heal_organ_damage(3, 0)
|
||||
H.add_chemical_effect(CE_ANTIBIOTIC, ANTIBIO_NORM)
|
||||
for(var/obj/item/organ/I in H.internal_organs)
|
||||
if(I.robotic >= ORGAN_ROBOT)
|
||||
continue
|
||||
|
||||
@@ -38,6 +38,9 @@
|
||||
if(!T)
|
||||
to_chat(src,"<span class='warning'>You can't use that here!</span>")
|
||||
return FALSE
|
||||
if((get_area(src).flags & PHASE_SHIELDED)) //CHOMPAdd - Mapping tools to control phasing
|
||||
to_chat(src,"<span class='warning'>This area is preventing you from phasing!</span>")
|
||||
return FALSE
|
||||
|
||||
var/brightness = T.get_lumcount() //Brightness in 0.0 to 1.0
|
||||
darkness = 1-brightness //Invert
|
||||
@@ -98,13 +101,6 @@
|
||||
to_chat(src, "<span class='warning'>Not enough energy for that ability!</span>")
|
||||
return FALSE
|
||||
|
||||
//CHOMPEdit begin - restricting areas where you can phase shift
|
||||
var/area/A = T.loc
|
||||
if(A?.limit_shadekin_phasing)
|
||||
to_chat(src, "<span class='warning'>You can't use that here!</span>")
|
||||
return FALSE
|
||||
//CHOMPEdit end
|
||||
|
||||
if(!(ability_flags & AB_PHASE_SHIFTED))
|
||||
shadekin_adjust_energy(-ability_cost)
|
||||
playsound(src, 'sound/effects/stealthoff.ogg', 75, 1)
|
||||
@@ -171,9 +167,9 @@
|
||||
var/destroy_lights = 0
|
||||
|
||||
//CHOMPEdit start - Add back light destruction
|
||||
if(SK.get_shadekin_eyecolor() == RED_EYES)
|
||||
if(SK.get_shadekin_eyecolor(src) == RED_EYES)
|
||||
destroy_lights = 80
|
||||
else if(SK.get_shadekin_eyecolor() == PURPLE_EYES)
|
||||
else if(SK.get_shadekin_eyecolor(src) == PURPLE_EYES)
|
||||
destroy_lights = 25
|
||||
//CHOMPEdit end
|
||||
|
||||
|
||||
@@ -199,3 +199,21 @@
|
||||
speak = list("Squeek!","SQUEEK!","Squeek?")
|
||||
emote_hear = list("squeeks","squeaks","squiks")
|
||||
emote_see = list("runs in a circle", "shakes", "scritches at something")
|
||||
|
||||
// CHOMPAdd - Verb for mice colour changing
|
||||
/mob/living/simple_mob/animal/passive/mouse/verb/set_mouse_colour()
|
||||
set name = "Set Mouse Colour"
|
||||
set category = "Abilities"
|
||||
set desc = "Set the colour of your mouse."
|
||||
var/new_mouse_colour = tgui_input_list(usr, "Set Mouse Colour", "Pick a colour", list("brown","gray","white","black"))
|
||||
if(!new_mouse_colour) return
|
||||
icon_state = resting ? "mouse_[new_mouse_colour]_sleep" : "mouse_[new_mouse_colour]"
|
||||
item_state = "mouse_[new_mouse_colour]"
|
||||
icon_living = "mouse_[new_mouse_colour]"
|
||||
icon_dead = "mouse_[new_mouse_colour]_dead"
|
||||
icon_rest = "mouse_[new_mouse_colour]_sleep"
|
||||
desc = "A small [new_mouse_colour] rodent, often seen hiding in maintenance areas and making a nuisance of itself."
|
||||
holder_type = text2path("/obj/item/weapon/holder/mouse/[new_mouse_colour]")
|
||||
to_chat(src, SPAN_NOTICE("You are now a [new_mouse_colour] mouse!"))
|
||||
verbs -= /mob/living/simple_mob/animal/passive/mouse/verb/set_mouse_colour
|
||||
// CHOMPAdd End
|
||||
|
||||
@@ -8,6 +8,10 @@
|
||||
to_chat(src,"<span class='warning'>You can't use that here!</span>")
|
||||
return FALSE
|
||||
|
||||
if((get_area(src).flags & PHASE_SHIELDED)) //CHOMPAdd - Mapping tools to control phasing
|
||||
to_chat(src,"<span class='warning'>This area is preventing you from phasing!</span>")
|
||||
return FALSE
|
||||
|
||||
if(shift_state && shift_state == AB_SHIFT_ACTIVE)
|
||||
to_chat(src,"<span class='warning'>You can't do a shift while actively shifting!</span>")
|
||||
return FALSE
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
if(!T.CanPass(src,T) || loc != T)
|
||||
to_chat(src,"<span class='warning'>You can't use that here!</span>")
|
||||
return FALSE
|
||||
if((get_area(src).flags & PHASE_SHIELDED))
|
||||
to_chat(src,"<span class='warning'>This area is preventing you from phasing!</span>")
|
||||
return FALSE
|
||||
|
||||
forceMove(T)
|
||||
var/original_canmove = canmove
|
||||
|
||||
@@ -85,10 +85,10 @@
|
||||
/proc/is_admin(var/mob/user)
|
||||
return check_rights(R_ADMIN|R_EVENT, 0, user) != 0
|
||||
|
||||
|
||||
/* CHOMPEdit - See modular_chomp/code/_HELPERS/type2type/color.dm
|
||||
/proc/hsl2rgb(h, s, l)
|
||||
return //TODO: Implement
|
||||
|
||||
*/
|
||||
/*
|
||||
Miss Chance
|
||||
*/
|
||||
|
||||
@@ -273,10 +273,14 @@
|
||||
if(!is_authenticated(usr))
|
||||
return
|
||||
|
||||
call_shuttle_proc(usr)
|
||||
if(emergency_shuttle.online())
|
||||
post_status(src, "shuttle", user = usr)
|
||||
setMenuState(usr, COMM_SCREEN_MAIN)
|
||||
//CHOMPEdit Start - Add confirmation message
|
||||
var/response = tgui_alert(usr, "OOC: You are required to Ahelp first before calling the shuttle. Please obtain confirmation from staff before calling the shuttle. \n\n Are you sure you want to call the shuttle?", "Confirm", list("Yes", "No"))
|
||||
|
||||
if(response == "Yes") //CHOMPEdit End
|
||||
call_shuttle_proc(usr)
|
||||
if(emergency_shuttle.online())
|
||||
post_status(src, "shuttle", user = usr)
|
||||
setMenuState(usr, COMM_SCREEN_MAIN)
|
||||
|
||||
if("cancelshuttle")
|
||||
if(isAI(usr) || isrobot(usr))
|
||||
|
||||
@@ -472,3 +472,12 @@
|
||||
for(var/A in contents)
|
||||
if(isliving(A))
|
||||
vore_fx(A,1)
|
||||
|
||||
/obj/belly/deserialize(var/list/data)
|
||||
..()
|
||||
STOP_PROCESSING(SSbellies, src)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
if(speedy_mob_processing)
|
||||
START_PROCESSING(SSobj, src)
|
||||
else
|
||||
START_PROCESSING(SSbellies, src)
|
||||
|
||||
@@ -55,6 +55,7 @@
|
||||
var/emote_active = TRUE // Are we even giving emotes out at all or not?
|
||||
var/next_emote = 0 // When we're supposed to print our next emote, as a world.time
|
||||
var/selective_preference = DM_DIGEST // Which type of selective bellymode do we default to?
|
||||
var/is_feedable = TRUE // If this belly shows up in belly selections for others. //CHOMPAdd
|
||||
|
||||
// Generally just used by AI
|
||||
var/autotransferchance = 0 // % Chance of prey being autotransferred to transfer location
|
||||
@@ -292,7 +293,8 @@
|
||||
"slow_brutal",
|
||||
"sound_volume",
|
||||
"speedy_mob_processing",
|
||||
"egg_name", //CHOMP end of variables from CHOMP
|
||||
"egg_name",
|
||||
"is_feedable", //CHOMP end of variables from CHOMP
|
||||
"egg_type",
|
||||
"save_digest_mode"
|
||||
)
|
||||
@@ -328,6 +330,9 @@
|
||||
// Called whenever an atom enters this belly
|
||||
/obj/belly/Entered(atom/movable/thing, atom/OldLoc)
|
||||
. = ..() //CHOMPEdit Start
|
||||
if(!owner)
|
||||
thing.forceMove(get_turf(src))
|
||||
return
|
||||
if(owner && istype(owner.loc,/turf/simulated) && !cycle_sloshed && reagents.total_volume > 0)
|
||||
var/turf/simulated/T = owner.loc
|
||||
var/S = pick(T.vorefootstep_sounds["human"])
|
||||
@@ -485,7 +490,7 @@
|
||||
I.alpha = max(150, min(custom_max_volume, 255)) - (255 - belly_fullscreen_alpha)
|
||||
I.pixel_y = -450 + (450 / custom_max_volume * reagents.total_volume)
|
||||
F.add_overlay(I)
|
||||
F.update_for_view(owner.client.view)
|
||||
F.update_for_view(L.client.view)
|
||||
else
|
||||
var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly/fixed, severity) //preserving save data
|
||||
F.icon = file("modular_chomp/icons/mob/vore_fullscreens/[belly_fullscreen].dmi")
|
||||
@@ -504,7 +509,7 @@
|
||||
I.alpha = max(150, min(custom_max_volume, 255)) - (255 - belly_fullscreen_alpha)
|
||||
I.pixel_y = -450 + (450 / custom_max_volume * reagents.total_volume)
|
||||
F.add_overlay(I)
|
||||
F.update_for_view(owner.client.view)
|
||||
F.update_for_view(L.client.view)
|
||||
//CHOMPEdit End
|
||||
else
|
||||
L.clear_fullscreen("belly")
|
||||
@@ -519,7 +524,6 @@
|
||||
return
|
||||
if(!L.client)
|
||||
return
|
||||
|
||||
if(belly_fullscreen)
|
||||
if(colorization_enabled)
|
||||
var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly, reagents.total_volume) //CHOMPedit Start: preserving save data
|
||||
@@ -550,7 +554,7 @@
|
||||
I.alpha = max(150, min(custom_max_volume, 255)) - (255 - belly_fullscreen_alpha)
|
||||
I.pixel_y = -450 + (450 / custom_max_volume * reagents.total_volume)
|
||||
F.add_overlay(I)
|
||||
F.update_for_view(owner.client.view)
|
||||
F.update_for_view(L.client.view)
|
||||
else
|
||||
var/obj/screen/fullscreen/F = L.overlay_fullscreen("belly", /obj/screen/fullscreen/belly/fixed, reagents.total_volume) //preserving save data
|
||||
F.cut_overlays()
|
||||
@@ -568,7 +572,7 @@
|
||||
I.alpha = max(150, min(custom_max_volume, 255)) - (255 - belly_fullscreen_alpha)
|
||||
I.pixel_y = -450 + (450 / custom_max_volume * reagents.total_volume)
|
||||
F.add_overlay(I)
|
||||
F.update_for_view(owner.client.view)//CHOMPEdit End
|
||||
F.update_for_view(L.client.view)//CHOMPEdit End
|
||||
else
|
||||
L.clear_fullscreen("belly")
|
||||
|
||||
@@ -1013,7 +1017,7 @@
|
||||
else
|
||||
qdel(M)
|
||||
if(isanimal(owner))
|
||||
owner.update_transform()
|
||||
owner.update_icon()
|
||||
//CHOMPEdit End
|
||||
|
||||
// Handle a mob being absorbed
|
||||
@@ -1519,7 +1523,8 @@
|
||||
dupe.slow_digestion = slow_digestion
|
||||
dupe.slow_brutal = slow_brutal
|
||||
dupe.sound_volume = sound_volume
|
||||
dupe.egg_name = egg_name //CHOMP end of variables from CHOMP
|
||||
dupe.egg_name = egg_name
|
||||
dupe.is_feedable = is_feedable //CHOMP end of variables from CHOMP
|
||||
|
||||
dupe.belly_fullscreen = belly_fullscreen
|
||||
dupe.disable_hud = disable_hud
|
||||
|
||||
@@ -354,8 +354,8 @@
|
||||
if((mode_flags & DM_FLAG_LEAVEREMAINS) && M.digest_leave_remains)
|
||||
handle_remains_leaving(M)
|
||||
digestion_death(M)
|
||||
if(!ishuman(owner))
|
||||
owner.update_icons()
|
||||
//if(!ishuman(owner)) CHOMPremoval. Bad.
|
||||
// owner.update_icons()
|
||||
if(isrobot(owner))
|
||||
var/mob/living/silicon/robot/R = owner
|
||||
if(reagent_mode_flags & DM_FLAG_REAGENTSDIGEST && reagents.total_volume < reagents.maximum_volume) //CHOMPedit: digestion producing reagents
|
||||
|
||||
@@ -578,6 +578,16 @@
|
||||
//
|
||||
// Eating procs depending on who clicked what
|
||||
//
|
||||
|
||||
//CHOMPAdd Start
|
||||
/mob/living/proc/feedable_bellies()
|
||||
var/list/bellies = list()
|
||||
for(var/obj/belly/Y in src.vore_organs)
|
||||
if(Y.is_feedable)
|
||||
bellies += Y
|
||||
return bellies
|
||||
//CHOMPAdd End
|
||||
|
||||
/mob/living/proc/feed_grabbed_to_self(mob/living/user, mob/living/prey)
|
||||
var/belly = user.vore_selected
|
||||
return perform_the_nom(user, prey, user, belly)
|
||||
@@ -585,17 +595,17 @@
|
||||
/mob/living/proc/eat_held_mob(mob/living/user, mob/living/prey, mob/living/pred)
|
||||
var/belly
|
||||
if(user != pred)
|
||||
belly = tgui_input_list(usr, "Choose Belly", "Belly Choice", pred.vore_organs)
|
||||
belly = tgui_input_list(usr, "Choose Belly", "Belly Choice", pred.feedable_bellies()) //CHOMPEdit
|
||||
else
|
||||
belly = pred.vore_selected
|
||||
return perform_the_nom(user, prey, pred, belly)
|
||||
|
||||
/mob/living/proc/feed_self_to_grabbed(mob/living/user, mob/living/pred)
|
||||
var/belly = tgui_input_list(usr, "Choose Belly", "Belly Choice", pred.vore_organs)
|
||||
var/belly = tgui_input_list(usr, "Choose Belly", "Belly Choice", pred.feedable_bellies()) //CHOMPEdit
|
||||
return perform_the_nom(user, user, pred, belly)
|
||||
|
||||
/mob/living/proc/feed_grabbed_to_other(mob/living/user, mob/living/prey, mob/living/pred)
|
||||
var/belly = tgui_input_list(usr, "Choose Belly", "Belly Choice", pred.vore_organs)
|
||||
var/belly = tgui_input_list(usr, "Choose Belly", "Belly Choice", pred.feedable_bellies()) //CHOMPEdit
|
||||
return perform_the_nom(user, prey, pred, belly)
|
||||
|
||||
//
|
||||
|
||||
@@ -180,6 +180,7 @@
|
||||
"release_sound" = selected.release_sound,
|
||||
// "messages" // TODO
|
||||
"can_taste" = selected.can_taste,
|
||||
"is_feedable" = selected.is_feedable, //CHOMPAdd
|
||||
"egg_type" = selected.egg_type,
|
||||
"egg_name" = selected.egg_name, //CHOMPAdd
|
||||
"nutrition_percent" = selected.nutrition_percent,
|
||||
@@ -1492,6 +1493,9 @@
|
||||
if("b_tastes")
|
||||
host.vore_selected.can_taste = !host.vore_selected.can_taste
|
||||
. = TRUE
|
||||
if("b_feedable") //CHOMPAdd
|
||||
host.vore_selected.is_feedable = !host.vore_selected.is_feedable
|
||||
. = TRUE
|
||||
if("b_bulge_size")
|
||||
var/new_bulge = tgui_input_number(user, "Choose the required size prey must be to show up on examine, ranging from 25% to 200% Set this to 0 for no text on examine.", "Set Belly Examine Size.", max_value = 200, min_value = 0)
|
||||
if(new_bulge == null)
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.2 MiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 100 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,16 @@
|
||||
//Toggle this file if you want to compile and run an instance quicker for faster testing of non-map related things
|
||||
|
||||
#if !defined(USING_MAP_DATUM)
|
||||
#include "runtime_station_defines.dm"
|
||||
#include "runtime_station.dmm"
|
||||
//Include these if you need them
|
||||
// #include "southern_cross/southern_cross_jobs.dm"
|
||||
// #include "southern_cross/loadout/loadout_accessories.dm"
|
||||
// #include "southern_cross/datums/supplypacks/munitions.dm"
|
||||
// #include "southern_cross/job/outfits.dm"
|
||||
#define USING_MAP_DATUM /datum/map/runtime_station
|
||||
#elif !defined(MAP_OVERRIDE)
|
||||
|
||||
#warn A map has already been included, ignoring Southern Cross
|
||||
|
||||
#endif
|
||||
@@ -8,6 +8,9 @@
|
||||
[b]Notice[/b]: The Vir government welcomes you to this world."}
|
||||
|
||||
map_z = list(Z_LEVEL_SURFACE, Z_LEVEL_SURFACE_MINE, Z_LEVEL_SURFACE_WILD, Z_LEVEL_SURFACE_SKYLANDS)
|
||||
|
||||
map_z = list(Z_LEVEL_SURFACE, Z_LEVEL_SURFACE_MINE, Z_LEVEL_SURFACE_WILD, Z_LEVEL_SURFACE_SKYLANDS, Z_LEVEL_SURFACE_VALLEY)
|
||||
|
||||
in_space = 0
|
||||
start_x = 10
|
||||
start_y = 10
|
||||
@@ -49,7 +52,9 @@
|
||||
start_x = 10
|
||||
start_y = 10
|
||||
known = 1 // lets Sectors appear on shuttle navigation for easy finding.
|
||||
extra_z_levels = list(Z_LEVEL_TRANSIT, Z_LEVEL_MISC,Z_LEVEL_SURFACE, Z_LEVEL_SURFACE_MINE, Z_LEVEL_SURFACE_WILD, Z_LEVEL_SURFACE_SKYLANDS) //This should allow for comms to reach people from the station. Basically this defines all the areas of Southern Cross and the Sif local system on the overmap.
|
||||
|
||||
extra_z_levels = list(Z_LEVEL_TRANSIT, Z_LEVEL_MISC,Z_LEVEL_SURFACE, Z_LEVEL_SURFACE_MINE, Z_LEVEL_SURFACE_WILD, Z_LEVEL_SURFACE_SKYLANDS, Z_LEVEL_SURFACE_VALLEY) //This should allow for comms to reach people from the station. Basically this defines all the areas of Southern Cross and the Sif local system on the overmap.
|
||||
|
||||
initial_generic_waypoints = list(
|
||||
"d1_aux_a",
|
||||
"d1_aux_b",
|
||||
|
||||
@@ -2975,9 +2975,7 @@
|
||||
/obj/structure/bed/chair{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/vending/wallmed1{
|
||||
layer = 3.3;
|
||||
name = "Emergency NanoMed";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_x = -28
|
||||
},
|
||||
/obj/item/device/radio/intercom{
|
||||
@@ -3048,9 +3046,7 @@
|
||||
/obj/structure/bed/chair{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/vending/wallmed1{
|
||||
layer = 3.3;
|
||||
name = "Emergency NanoMed";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_x = -28
|
||||
},
|
||||
/obj/item/device/radio/intercom{
|
||||
@@ -9417,8 +9413,7 @@
|
||||
/obj/structure/bed/chair{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/vending/wallmed1{
|
||||
name = "NanoMed Wall";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_y = -30
|
||||
},
|
||||
/obj/effect/shuttle_landmark/southern_cross/escape_pod3/station,
|
||||
@@ -18030,9 +18025,7 @@
|
||||
/obj/structure/bed/chair{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/vending/wallmed1{
|
||||
layer = 3.3;
|
||||
name = "Emergency NanoMed";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_x = -28
|
||||
},
|
||||
/turf/simulated/shuttle/floor/white,
|
||||
@@ -18614,8 +18607,7 @@
|
||||
/obj/structure/bed/chair{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/vending/wallmed1{
|
||||
name = "NanoMed Wall";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_y = 30
|
||||
},
|
||||
/obj/effect/shuttle_landmark/southern_cross/escape_pod5/station,
|
||||
@@ -23570,9 +23562,7 @@
|
||||
/area/maintenance/firstdeck/forestarboard)
|
||||
"poW" = (
|
||||
/obj/structure/bed/chair,
|
||||
/obj/machinery/vending/wallmed1{
|
||||
layer = 3.3;
|
||||
name = "Emergency NanoMed";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_x = 28
|
||||
},
|
||||
/turf/simulated/shuttle/floor/white,
|
||||
@@ -27873,8 +27863,7 @@
|
||||
/obj/structure/bed/chair{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/vending/wallmed1{
|
||||
name = "NanoMed Wall";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_y = -30
|
||||
},
|
||||
/obj/effect/shuttle_landmark/southern_cross/escape_pod4/station,
|
||||
@@ -28347,8 +28336,7 @@
|
||||
/obj/structure/bed/chair{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/vending/wallmed1{
|
||||
name = "NanoMed Wall";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_y = 30
|
||||
},
|
||||
/obj/effect/shuttle_landmark/southern_cross/escape_pod6/station,
|
||||
|
||||
@@ -32,9 +32,6 @@
|
||||
/obj/effect/zone_divider,
|
||||
/turf/simulated/mineral/sif,
|
||||
/area/surface/outside/wilderness/mountains)
|
||||
"al" = (
|
||||
/turf/simulated/wall/solidrock,
|
||||
/area/surface/outside/river/svartan)
|
||||
"am" = (
|
||||
/turf/simulated/floor/water,
|
||||
/area/surface/outside/river/svartan)
|
||||
@@ -553,6 +550,9 @@
|
||||
},
|
||||
/turf/simulated/floor/plating,
|
||||
/area/surface/outpost/shelter/utilityroom)
|
||||
"kh" = (
|
||||
/turf/simulated/wall/solidrock,
|
||||
/area/surface/outside/wilderness/normal)
|
||||
"kZ" = (
|
||||
/obj/effect/zone_divider,
|
||||
/obj/effect/zone_divider,
|
||||
@@ -630,6 +630,10 @@
|
||||
/obj/effect/zone_divider,
|
||||
/turf/simulated/floor/outdoors/dirt/sif/planetuse,
|
||||
/area/surface/outside/path/wilderness)
|
||||
"sC" = (
|
||||
/obj/structure/railing,
|
||||
/turf/simulated/floor/water/deep,
|
||||
/area/surface/outside/river/svartan)
|
||||
"td" = (
|
||||
/obj/structure/curtain/medical{
|
||||
name = "medical curtain"
|
||||
@@ -693,6 +697,12 @@
|
||||
/obj/effect/zone_divider,
|
||||
/turf/simulated/floor/outdoors/dirt,
|
||||
/area/surface/outside/path/wilderness)
|
||||
"xx" = (
|
||||
/obj/effect/map_effect/portal/master/side_a/wilderness_to_valley{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/area/surface/outside/river/svartan)
|
||||
"xA" = (
|
||||
/obj/machinery/light/bigfloorlamp,
|
||||
/turf/simulated/floor/outdoors/grass/sif/planetuse,
|
||||
@@ -714,10 +724,22 @@
|
||||
},
|
||||
/turf/simulated/floor/outdoors/dirt/sif/planetuse,
|
||||
/area/surface/outpost/shelter/exterior)
|
||||
"As" = (
|
||||
/turf/simulated/floor/wood,
|
||||
/area/surface/outside/river/svartan)
|
||||
"AB" = (
|
||||
/obj/effect/zone_divider,
|
||||
/turf/simulated/floor/outdoors/rocks/sif/planetuse,
|
||||
/area/surface/outside/wilderness/normal)
|
||||
"AX" = (
|
||||
/obj/effect/map_effect/portal/line/side_a{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/railing{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/water/deep,
|
||||
/area/surface/outside/river/svartan)
|
||||
"AZ" = (
|
||||
/obj/structure/simple_door/sifwood,
|
||||
/obj/machinery/door/blast/shutters{
|
||||
@@ -728,6 +750,12 @@
|
||||
},
|
||||
/turf/simulated/floor/plating,
|
||||
/area/surface/outpost/shelter/utilityroom)
|
||||
"BF" = (
|
||||
/obj/effect/map_effect/portal/line/side_a{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/wood,
|
||||
/area/surface/outside/river/svartan)
|
||||
"Dk" = (
|
||||
/obj/structure/sign/department/medbay{
|
||||
name = "FIRST AID"
|
||||
@@ -746,6 +774,9 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/surface/outpost/shelter)
|
||||
"IZ" = (
|
||||
/turf/simulated/mineral/sif,
|
||||
/area/surface/outside/wilderness/normal)
|
||||
"Jk" = (
|
||||
/obj/item/device/geiger/wall/north,
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
@@ -773,6 +804,20 @@
|
||||
/obj/effect/zone_divider,
|
||||
/turf/simulated/floor/water/deep,
|
||||
/area/surface/outside/river/svartan)
|
||||
"LI" = (
|
||||
/obj/structure/railing{
|
||||
dir = 8;
|
||||
icon_state = "railing0"
|
||||
},
|
||||
/turf/simulated/floor/water,
|
||||
/area/surface/outside/river/svartan)
|
||||
"Mg" = (
|
||||
/obj/effect/map_effect/portal/line/side_a{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/railing,
|
||||
/turf/simulated/floor/water/deep,
|
||||
/area/surface/outside/river/svartan)
|
||||
"Mk" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/circuitboard/machine/rtg/advanced,
|
||||
@@ -816,6 +861,12 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/surface/outpost/shelter)
|
||||
"Qz" = (
|
||||
/obj/structure/railing{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/water/deep,
|
||||
/area/surface/outside/river/svartan)
|
||||
"Rc" = (
|
||||
/obj/machinery/light/small{
|
||||
dir = 4
|
||||
@@ -907,6 +958,9 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/surface/outpost/shelter)
|
||||
"XD" = (
|
||||
/turf/simulated/wall/solidrock,
|
||||
/area/surface/outside/wilderness/deep)
|
||||
"Yq" = (
|
||||
/obj/machinery/power/thermoregulator/southerncross{
|
||||
pixel_x = 1;
|
||||
@@ -946,6 +1000,9 @@
|
||||
"YL" = (
|
||||
/turf/simulated/mineral/sif,
|
||||
/area/surface/outpost/wall/checkpoint)
|
||||
"Za" = (
|
||||
/turf/simulated/mineral/sif,
|
||||
/area/surface/outside/wilderness/deep)
|
||||
"ZG" = (
|
||||
/obj/structure/showcase/sign{
|
||||
desc = "This appears to be a sign warning people that the other side is extremely hazardous.";
|
||||
@@ -1087,16 +1144,16 @@ ab
|
||||
ab
|
||||
ad
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
al
|
||||
al
|
||||
al
|
||||
al
|
||||
al
|
||||
al
|
||||
ab
|
||||
ab
|
||||
XD
|
||||
XD
|
||||
BF
|
||||
BF
|
||||
AX
|
||||
Mg
|
||||
BF
|
||||
xx
|
||||
kh
|
||||
kh
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -1345,16 +1402,16 @@ ac
|
||||
ac
|
||||
ak
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
am
|
||||
am
|
||||
an
|
||||
an
|
||||
am
|
||||
am
|
||||
ac
|
||||
ac
|
||||
Za
|
||||
Za
|
||||
As
|
||||
As
|
||||
Qz
|
||||
sC
|
||||
As
|
||||
As
|
||||
IZ
|
||||
IZ
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
@@ -1602,19 +1659,19 @@ ac
|
||||
ac
|
||||
ac
|
||||
ak
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
am
|
||||
am
|
||||
an
|
||||
an
|
||||
am
|
||||
am
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
As
|
||||
As
|
||||
Qz
|
||||
sC
|
||||
As
|
||||
As
|
||||
ap
|
||||
ap
|
||||
ap
|
||||
ap
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
@@ -1861,18 +1918,18 @@ ah
|
||||
ah
|
||||
aw
|
||||
ah
|
||||
ac
|
||||
ah
|
||||
am
|
||||
am
|
||||
an
|
||||
an
|
||||
am
|
||||
am
|
||||
ah
|
||||
As
|
||||
As
|
||||
Qz
|
||||
sC
|
||||
As
|
||||
As
|
||||
ap
|
||||
ap
|
||||
ap
|
||||
ap
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
@@ -2121,12 +2178,12 @@ aw
|
||||
ah
|
||||
ah
|
||||
ah
|
||||
am
|
||||
am
|
||||
LI
|
||||
LI
|
||||
an
|
||||
an
|
||||
am
|
||||
am
|
||||
LI
|
||||
LI
|
||||
am
|
||||
ap
|
||||
ap
|
||||
|
||||
@@ -8983,8 +8983,7 @@
|
||||
/obj/structure/bed/chair{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/vending/wallmed1{
|
||||
name = "NanoMed Wall";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_y = 30
|
||||
},
|
||||
/obj/effect/shuttle_landmark/southern_cross/escape_pod8/station,
|
||||
@@ -10597,8 +10596,7 @@
|
||||
/obj/structure/bed/chair{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/vending/wallmed1{
|
||||
name = "NanoMed Wall";
|
||||
/obj/structure/closet/walllocker/medical{
|
||||
pixel_y = -30
|
||||
},
|
||||
/obj/effect/shuttle_landmark/southern_cross/escape_pod7/station,
|
||||
@@ -21529,20 +21527,6 @@
|
||||
},
|
||||
/turf/simulated/floor/tiled/freezer,
|
||||
/area/crew_quarters/toilet)
|
||||
"tIP" = (
|
||||
/obj/structure/toilet,
|
||||
/obj/structure/toilet,
|
||||
/obj/machinery/light/small{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/floor_decal/steeldecal/steel_decals4{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/floor_decal/steeldecal/steel_decals4{
|
||||
dir = 5
|
||||
},
|
||||
/turf/simulated/floor/tiled/freezer,
|
||||
/area/crew_quarters/toilet)
|
||||
"tJG" = (
|
||||
/obj/effect/floor_decal/spline/fancy/wood{
|
||||
dir = 10
|
||||
@@ -64447,7 +64431,7 @@ sJA
|
||||
hCK
|
||||
hCK
|
||||
tpf
|
||||
tIP
|
||||
wwo
|
||||
uiC
|
||||
uFP
|
||||
uNJ
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "southern_cross-9.dmm" //Transit z8
|
||||
#include "southern_cross-10.dmm" //Sif wilds z9
|
||||
#include "southern_cross-12.dmm" //Skylands z10
|
||||
#include "southern_cross-13.dmm" //Valley z11 seemingly. For stranger critters and POIs.
|
||||
#endif
|
||||
// #include "southern_cross-casino.dmm" //CHOMPedit: Disabled to save resources and loaded in during events - Jack
|
||||
|
||||
@@ -59,6 +60,7 @@
|
||||
|
||||
|
||||
//PLANETS, installations, sectors, ships, etc for the overmap, I want put here. Add new comments and includes when you make new planets
|
||||
#include "overmap/shuttles.dm"
|
||||
//SIF - Planet
|
||||
#include "overmap/sectors.dm" //This is actually the sector for Sif. This also includes places like the main station and the surface
|
||||
//KARA - Planet
|
||||
|
||||
@@ -187,6 +187,28 @@
|
||||
name = "Wilderness Shelter Utility Room"
|
||||
icon_state = "substation"
|
||||
|
||||
//Valley stuffs, chomps Edit by Jasper, for wilds but stranger.
|
||||
/area/surface/outpost/unfinished
|
||||
name = "Unfinished"
|
||||
icon_state = "red"
|
||||
|
||||
/area/surface/outside/valley/inner
|
||||
name = "Valley Inner"
|
||||
icon_state = "yellow"
|
||||
|
||||
/area/surface/outside/valley/walls
|
||||
name = "Valley Walls"
|
||||
icon_state = "yellow"
|
||||
outdoors = OUTDOORS_NO
|
||||
|
||||
/area/surface/outside/valley/edge
|
||||
name = "Valley Edge"
|
||||
icon_state = "yellow"
|
||||
|
||||
/area/surface/outside/valley/river
|
||||
name = "Valley River"
|
||||
icon_state = "yellow"
|
||||
|
||||
// Main mining outpost
|
||||
/area/surface/outpost/mining_main
|
||||
name = "North Mining Outpost"
|
||||
|
||||
@@ -17,11 +17,12 @@ but they don't actually change anything about the load order
|
||||
#define Z_LEVEL_TRANSIT 8
|
||||
#define Z_LEVEL_SURFACE_WILD 9
|
||||
#define Z_LEVEL_SURFACE_SKYLANDS 10
|
||||
#define Z_LEVEL_VR_REALM 11
|
||||
#define Z_LEVEL_FUELDEPOT 12
|
||||
#define Z_LEVEL_AEROSTAT 13
|
||||
#define Z_LEVEL_NS_MINE 14
|
||||
#define Z_LEVEL_GATEWAY 15
|
||||
#define Z_LEVEL_SURFACE_VALLEY 11
|
||||
#define Z_LEVEL_VR_REALM 12
|
||||
#define Z_LEVEL_FUELDEPOT 13
|
||||
#define Z_LEVEL_AEROSTAT 14
|
||||
#define Z_LEVEL_NS_MINE 15
|
||||
#define Z_LEVEL_GATEWAY 16
|
||||
|
||||
//#define Z_LEVEL_SURFACE_CASINO xx //CHOMPedit - KSC = So there is weather on the casino. //Raz - When you do casino again, launch it in a test server, note what z-level it is on, and then replace xx with that z-level you noted. Revert back to xx and comment out when done.
|
||||
//#define Z_LEVEL_EMPTY_SPACE xx //CHOMPedit: Disabling empty space as now the overmap generates empty space on demand.
|
||||
@@ -167,6 +168,8 @@ but they don't actually change anything about the load order
|
||||
// Wilderness is next.
|
||||
seed_submaps(list(Z_LEVEL_SURFACE_WILD), 240, /area/surface/outside/wilderness/normal, /datum/map_template/surface/wilderness/normal) //CHOMPEdit bumped up from 60 to 150
|
||||
seed_submaps(list(Z_LEVEL_SURFACE_WILD), 240, /area/surface/outside/wilderness/deep, /datum/map_template/surface/wilderness/deep) //CHOMPEdit bumped up from 60 to 150
|
||||
seed_submaps(list(Z_LEVEL_SURFACE_VALLEY), 200, /area/surface/outside/valley/walls, /datum/map_template/surface/valley/walls)
|
||||
seed_submaps(list(Z_LEVEL_SURFACE_VALLEY), 200, /area/surface/outside/valley/inner, /datum/map_template/surface/valley/inner)
|
||||
// If Space submaps are made, add a line to make them here as well.
|
||||
|
||||
// Now for the tunnels. (This decides the load order of ore generation and cave generation. Check Random_Map to see % )
|
||||
@@ -245,6 +248,12 @@ but they don't actually change anything about the load order
|
||||
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED|MAP_LEVEL_CONTACT|MAP_LEVEL_CONSOLES
|
||||
base_turf = /turf/simulated/open
|
||||
|
||||
/datum/map_z_level/southern_cross/surface_valley
|
||||
z = Z_LEVEL_SURFACE_VALLEY
|
||||
name = "Valley"
|
||||
flags = MAP_LEVEL_PLAYER|MAP_LEVEL_SEALED|MAP_LEVEL_CONTACT|MAP_LEVEL_CONSOLES
|
||||
base_turf = /turf/simulated/floor/outdoors/rocks
|
||||
|
||||
//CHOMPedit - KSC = So Christmas Casino has weather.
|
||||
/*/datum/map_z_level/southern_cross/surface_casino
|
||||
z = Z_LEVEL_SURFACE_CASINO
|
||||
@@ -304,7 +313,8 @@ but they don't actually change anything about the load order
|
||||
Z_LEVEL_SURFACE,
|
||||
Z_LEVEL_SURFACE_MINE,
|
||||
Z_LEVEL_SURFACE_WILD,
|
||||
Z_LEVEL_SURFACE_SKYLANDS
|
||||
Z_LEVEL_SURFACE_SKYLANDS,
|
||||
Z_LEVEL_SURFACE_VALLEY
|
||||
)
|
||||
//Z_LEVEL_SURFACE_CASINO //CHOMPedit - KSC = So there is weather on the Casino. //Move this into /datum/planet/sif and remember to add a coma for the new entry, for when you need the casino again
|
||||
|
||||
@@ -371,6 +381,13 @@ but they don't actually change anything about the load order
|
||||
/obj/effect/map_effect/portal/master/side_b/wilderness_to_caves/river
|
||||
portal_id = "caves_wilderness-river"
|
||||
|
||||
/obj/effect/map_effect/portal/master/side_a/wilderness_to_valley
|
||||
portal_id = "wilderness_valley"
|
||||
|
||||
/obj/effect/map_effect/portal/master/side_b/wilderness_to_valley
|
||||
portal_id = "wilderness_valley"
|
||||
|
||||
|
||||
/*
|
||||
//CHOMPEdit this is very much necessary for us otherwise weather sounds play on other levels
|
||||
/datum/planet/sif
|
||||
|
||||
@@ -77,6 +77,11 @@ var/const/NETWORK_CARRIER = "Exploration Carrier" //CHOMPedit: Exploration outp
|
||||
listening_level = Z_LEVEL_SURFACE_SKYLANDS
|
||||
autolinkers = list("sky_relay")
|
||||
|
||||
/obj/machinery/telecomms/relay/preset/southerncross/valley
|
||||
id = "Valley Relay"
|
||||
listening_level = Z_LEVEL_SURFACE_VALLEY
|
||||
autolinkers = list("valley_relay")
|
||||
|
||||
//Temp Removal TFF 15/2/20
|
||||
/*
|
||||
/obj/machinery/telecomms/relay/preset/belt_outpost // CHOMPedit: Tcomms relay for Belt Outpost
|
||||
@@ -95,8 +100,8 @@ var/const/NETWORK_CARRIER = "Exploration Carrier" //CHOMPedit: Exploration outp
|
||||
id = "Hub"
|
||||
network = "tcommsat"
|
||||
autolinkers = list("hub",
|
||||
"d1_relay", "d2_relay", "d3_relay", "pnt_relay", "cve_relay", "wld_relay", "tns_relay", "cnt_relay", "explorer", "exp_relay", "sky_relay",
|
||||
//"belt_relay", // Chompstation edit - adds belt outpost to relays. Temp Removal of Belt Relay TFF 15/2/20,
|
||||
"d1_relay", "d2_relay", "d3_relay", "pnt_relay", "cve_relay", "wld_relay", "tns_relay", "cnt_relay", "explorer", "exp_relay", "sky_relay", "valley_relay",
|
||||
//"belt_relay", // Chompstation edit - adds belt outpost to relays. Temp Removal of Belt Relay TFF 15/2/20, Added Valley comn stuff 2/14/2023
|
||||
"science", "medical", "supply", "service", "common", "command", "engineering", "security", "unused",
|
||||
"hb_relay", "receiverA", "broadcasterA"
|
||||
) //CHOMPedit: Adds "exp_relay"
|
||||
|
||||
@@ -0,0 +1,956 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aa" = (
|
||||
/obj/effect/floor_decal/corner/yellow/border{
|
||||
dir = 9
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"ak" = (
|
||||
/turf/simulated/wall/titanium,
|
||||
/area/submap/blobden)
|
||||
"aH" = (
|
||||
/obj/effect/floor_decal/corner/blue/border{
|
||||
dir = 6
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"aQ" = (
|
||||
/obj/structure/blob/core/random_hard,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"bC" = (
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 9
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"cq" = (
|
||||
/obj/effect/floor_decal/corner/orange/border{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"dt" = (
|
||||
/obj/effect/floor_decal/corner/blue/border,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"dS" = (
|
||||
/obj/effect/floor_decal/corner/green/border{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"eL" = (
|
||||
/obj/effect/floor_decal/corner/red/border,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"eY" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/rig_module/rad_shield/advanced,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"fb" = (
|
||||
/obj/effect/floor_decal/corner/orange/border,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"gk" = (
|
||||
/obj/effect/floor_decal/corner/green/border{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"ig" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/rig_module/mounted/egun,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"iN" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/weapon/storage/firstaid/bonemed,
|
||||
/obj/random/medical,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"kY" = (
|
||||
/obj/effect/floor_decal/corner/purple/border,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"ls" = (
|
||||
/obj/effect/floor_decal/corner/blue/border{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"lt" = (
|
||||
/turf/simulated/mineral/light,
|
||||
/area/template_noop)
|
||||
"lO" = (
|
||||
/obj/effect/floor_decal/corner/yellow/border{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"nB" = (
|
||||
/obj/effect/floor_decal/corner/green/bordercorner{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/floor_decal/corner/orange/bordercorner,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"pr" = (
|
||||
/obj/effect/floor_decal/corner/green/bordercorner,
|
||||
/obj/effect/floor_decal/corner/orange/bordercorner{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"pU" = (
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"qc" = (
|
||||
/obj/machinery/door/airlock/centcom{
|
||||
name = "Special Operations";
|
||||
req_access = list(103)
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"qz" = (
|
||||
/obj/effect/floor_decal/corner/green/border,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"qW" = (
|
||||
/obj/effect/floor_decal/corner/purple/border{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"ry" = (
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"sJ" = (
|
||||
/obj/effect/floor_decal/corner/green/border{
|
||||
dir = 10
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"uj" = (
|
||||
/obj/effect/floor_decal/corner/purple/border{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"uA" = (
|
||||
/obj/effect/floor_decal/corner/purple/border{
|
||||
dir = 5
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"wD" = (
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 5
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"wX" = (
|
||||
/obj/effect/floor_decal/corner/purple/border{
|
||||
dir = 6
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"xW" = (
|
||||
/obj/effect/floor_decal/corner/orange/border{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"yW" = (
|
||||
/obj/effect/floor_decal/corner/purple/border{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"zE" = (
|
||||
/obj/effect/floor_decal/corner/green/border{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Ac" = (
|
||||
/obj/effect/floor_decal/corner/blue/border{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"AJ" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/weapon/cell/device/weapon/recharge,
|
||||
/obj/item/weapon/cell/device/weapon/recharge,
|
||||
/obj/item/weapon/cell/device/weapon/recharge,
|
||||
/obj/item/weapon/cell/device/weapon/recharge,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Bc" = (
|
||||
/obj/effect/floor_decal/corner/purple/border{
|
||||
dir = 10
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Bw" = (
|
||||
/obj/effect/floor_decal/corner/yellow/border{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Db" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/random/maintenance/security,
|
||||
/obj/random/maintenance/security,
|
||||
/obj/random/maintenance/security,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"DR" = (
|
||||
/obj/effect/floor_decal/corner/green/border{
|
||||
dir = 6
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Fe" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/rig_module/chem_dispenser/combat,
|
||||
/obj/random/medical,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"FA" = (
|
||||
/obj/effect/floor_decal/corner/blue/border{
|
||||
dir = 9
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"FC" = (
|
||||
/obj/effect/floor_decal/corner/green/bordercorner{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/floor_decal/corner/orange/bordercorner{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"FL" = (
|
||||
/obj/effect/floor_decal/corner/yellow/border{
|
||||
dir = 5
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Gy" = (
|
||||
/obj/effect/floor_decal/corner/blue/border{
|
||||
dir = 10
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Ha" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/research,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Hs" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/random/maintenance/engineering,
|
||||
/obj/random/maintenance/engineering,
|
||||
/obj/random/maintenance/engineering,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"HQ" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/random/energy/sec,
|
||||
/obj/item/rig_module/stealth_field,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Iv" = (
|
||||
/obj/effect/floor_decal/corner/green/border{
|
||||
dir = 5
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"IC" = (
|
||||
/obj/effect/floor_decal/corner/blue/border{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Kc" = (
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 6
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"La" = (
|
||||
/obj/effect/floor_decal/corner/yellow/border,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"NS" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/random/maintenance/medical,
|
||||
/obj/random/maintenance/medical,
|
||||
/obj/random/maintenance/medical,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"OA" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/random/energy/highend,
|
||||
/obj/item/rig_module/voice,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"PM" = (
|
||||
/obj/effect/floor_decal/corner/green/border{
|
||||
dir = 9
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Qg" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/rig_module/grenade_launcher/metalfoam,
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Qp" = (
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"RM" = (
|
||||
/obj/effect/floor_decal/corner/orange/border{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"SR" = (
|
||||
/obj/effect/floor_decal/corner/purple/border{
|
||||
dir = 9
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Tq" = (
|
||||
/obj/effect/floor_decal/corner/blue/border{
|
||||
dir = 5
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"TK" = (
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Uv" = (
|
||||
/obj/effect/floor_decal/corner/green/bordercorner{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/floor_decal/corner/orange/bordercorner{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Vm" = (
|
||||
/obj/effect/floor_decal/corner/yellow/border{
|
||||
dir = 6
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"WE" = (
|
||||
/obj/effect/floor_decal/corner/yellow/border{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"WG" = (
|
||||
/obj/effect/floor_decal/corner/red/border{
|
||||
dir = 10
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
"Yd" = (
|
||||
/obj/effect/floor_decal/corner/yellow/border{
|
||||
dir = 10
|
||||
},
|
||||
/turf/simulated/floor/tiled/white,
|
||||
/area/submap/blobden)
|
||||
|
||||
(1,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
FA
|
||||
Ac
|
||||
Ac
|
||||
Gy
|
||||
ak
|
||||
PM
|
||||
dS
|
||||
sJ
|
||||
ak
|
||||
SR
|
||||
qW
|
||||
qW
|
||||
Bc
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
IC
|
||||
iN
|
||||
NS
|
||||
dt
|
||||
ak
|
||||
zE
|
||||
pU
|
||||
qz
|
||||
ak
|
||||
yW
|
||||
Ha
|
||||
OA
|
||||
kY
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
IC
|
||||
NS
|
||||
Fe
|
||||
dt
|
||||
ak
|
||||
zE
|
||||
pU
|
||||
qz
|
||||
ak
|
||||
yW
|
||||
Qg
|
||||
Ha
|
||||
kY
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
Tq
|
||||
ls
|
||||
ls
|
||||
aH
|
||||
qc
|
||||
zE
|
||||
pU
|
||||
qz
|
||||
qc
|
||||
uA
|
||||
uj
|
||||
uj
|
||||
wX
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
qc
|
||||
ak
|
||||
zE
|
||||
pU
|
||||
qz
|
||||
ak
|
||||
qc
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
PM
|
||||
dS
|
||||
dS
|
||||
dS
|
||||
dS
|
||||
nB
|
||||
RM
|
||||
Uv
|
||||
dS
|
||||
dS
|
||||
dS
|
||||
dS
|
||||
sJ
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
zE
|
||||
pU
|
||||
pU
|
||||
pU
|
||||
pU
|
||||
fb
|
||||
aQ
|
||||
xW
|
||||
pU
|
||||
pU
|
||||
pU
|
||||
pU
|
||||
qz
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
Iv
|
||||
gk
|
||||
gk
|
||||
gk
|
||||
gk
|
||||
FC
|
||||
cq
|
||||
pr
|
||||
gk
|
||||
gk
|
||||
gk
|
||||
gk
|
||||
DR
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
qc
|
||||
ak
|
||||
zE
|
||||
pU
|
||||
qz
|
||||
ak
|
||||
qc
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
aa
|
||||
WE
|
||||
WE
|
||||
Yd
|
||||
qc
|
||||
zE
|
||||
pU
|
||||
qz
|
||||
qc
|
||||
bC
|
||||
TK
|
||||
TK
|
||||
WG
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
Bw
|
||||
Hs
|
||||
eY
|
||||
La
|
||||
ak
|
||||
zE
|
||||
pU
|
||||
qz
|
||||
ak
|
||||
ry
|
||||
ig
|
||||
Db
|
||||
eL
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
Bw
|
||||
AJ
|
||||
Hs
|
||||
La
|
||||
ak
|
||||
zE
|
||||
pU
|
||||
qz
|
||||
ak
|
||||
ry
|
||||
Db
|
||||
HQ
|
||||
eL
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
FL
|
||||
lO
|
||||
lO
|
||||
Vm
|
||||
ak
|
||||
Iv
|
||||
gk
|
||||
DR
|
||||
ak
|
||||
wD
|
||||
Qp
|
||||
Qp
|
||||
Kc
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
ak
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
lt
|
||||
"}
|
||||
@@ -0,0 +1,786 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/obj/structure/catwalk,
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"b" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 9
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"d" = (
|
||||
/obj/effect/decal/cleanable/ash,
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"h" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 2
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"k" = (
|
||||
/mob/living/simple_mob/mechanical/wahlem{
|
||||
faction = "malf_drone"
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"m" = (
|
||||
/obj/structure/railing,
|
||||
/obj/structure/railing{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"n" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/railing{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"o" = (
|
||||
/obj/structure/railing{
|
||||
dir = 8;
|
||||
icon_state = "railing0"
|
||||
},
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"p" = (
|
||||
/obj/effect/landmark/loot_spawn/low,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"q" = (
|
||||
/obj/structure/cliff/automatic/corner{
|
||||
dir = 10
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"t" = (
|
||||
/obj/structure/cliff/automatic,
|
||||
/obj/structure/railing{
|
||||
dir = 8;
|
||||
icon_state = "railing0"
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"u" = (
|
||||
/obj/structure/cliff/automatic/corner{
|
||||
dir = 6
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"v" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"y" = (
|
||||
/obj/structure/railing,
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"z" = (
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"A" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 2
|
||||
},
|
||||
/obj/structure/railing{
|
||||
dir = 4;
|
||||
icon_state = "railing0"
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"C" = (
|
||||
/obj/structure/cliff/automatic,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"D" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 2
|
||||
},
|
||||
/obj/structure/railing{
|
||||
dir = 8;
|
||||
icon_state = "railing0"
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"E" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/railing,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"F" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"G" = (
|
||||
/obj/structure/railing{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"H" = (
|
||||
/obj/structure/cliff/automatic,
|
||||
/obj/structure/railing{
|
||||
dir = 4;
|
||||
icon_state = "railing0"
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"I" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 10;
|
||||
icon_state = "cliffbuilder"
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"J" = (
|
||||
/obj/structure/cliff/automatic/corner{
|
||||
dir = 9
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"K" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 6;
|
||||
icon_state = "cliffbuilder"
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"M" = (
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"N" = (
|
||||
/obj/structure/cliff/automatic/corner,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"Q" = (
|
||||
/obj/structure/catwalk,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"R" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 5
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"S" = (
|
||||
/obj/structure/closet/grave,
|
||||
/obj/item/weapon/rig/ch/clockwork,
|
||||
/obj/item/weapon/gun/energy/clockwork,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"T" = (
|
||||
/obj/structure/railing{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"U" = (
|
||||
/obj/structure/cliff/automatic{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/clockwork)
|
||||
"V" = (
|
||||
/obj/structure/railing{
|
||||
dir = 4;
|
||||
icon_state = "railing0"
|
||||
},
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"W" = (
|
||||
/mob/living/simple_mob/mechanical/mining_drone,
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
"Z" = (
|
||||
/obj/structure/railing{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/railing{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/lava,
|
||||
/area/submap/clockwork)
|
||||
|
||||
(1,1,1) = {"
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
F
|
||||
F
|
||||
p
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
p
|
||||
F
|
||||
F
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
F
|
||||
p
|
||||
z
|
||||
z
|
||||
b
|
||||
U
|
||||
E
|
||||
Q
|
||||
n
|
||||
U
|
||||
U
|
||||
U
|
||||
U
|
||||
U
|
||||
E
|
||||
Q
|
||||
n
|
||||
U
|
||||
I
|
||||
z
|
||||
z
|
||||
p
|
||||
F
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
F
|
||||
z
|
||||
z
|
||||
b
|
||||
J
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
q
|
||||
I
|
||||
z
|
||||
z
|
||||
F
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
F
|
||||
z
|
||||
b
|
||||
J
|
||||
M
|
||||
W
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
W
|
||||
M
|
||||
q
|
||||
I
|
||||
z
|
||||
F
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
M
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
M
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
F
|
||||
z
|
||||
H
|
||||
V
|
||||
V
|
||||
V
|
||||
z
|
||||
z
|
||||
z
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
z
|
||||
z
|
||||
z
|
||||
V
|
||||
V
|
||||
V
|
||||
A
|
||||
z
|
||||
F
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
F
|
||||
z
|
||||
Q
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
z
|
||||
z
|
||||
M
|
||||
M
|
||||
W
|
||||
M
|
||||
M
|
||||
z
|
||||
z
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
Q
|
||||
z
|
||||
F
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
F
|
||||
z
|
||||
t
|
||||
o
|
||||
o
|
||||
o
|
||||
z
|
||||
z
|
||||
z
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
z
|
||||
z
|
||||
z
|
||||
o
|
||||
o
|
||||
o
|
||||
D
|
||||
z
|
||||
F
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
M
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
M
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
M
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
z
|
||||
z
|
||||
z
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
M
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
W
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
S
|
||||
k
|
||||
S
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
W
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
M
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
z
|
||||
z
|
||||
z
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
M
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
M
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
y
|
||||
a
|
||||
G
|
||||
M
|
||||
M
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
M
|
||||
M
|
||||
z
|
||||
z
|
||||
z
|
||||
T
|
||||
m
|
||||
d
|
||||
Z
|
||||
T
|
||||
z
|
||||
z
|
||||
z
|
||||
M
|
||||
M
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
M
|
||||
M
|
||||
z
|
||||
z
|
||||
z
|
||||
a
|
||||
d
|
||||
M
|
||||
d
|
||||
a
|
||||
z
|
||||
z
|
||||
z
|
||||
M
|
||||
M
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
M
|
||||
M
|
||||
z
|
||||
z
|
||||
z
|
||||
o
|
||||
o
|
||||
o
|
||||
o
|
||||
o
|
||||
z
|
||||
z
|
||||
z
|
||||
M
|
||||
M
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
F
|
||||
z
|
||||
C
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
h
|
||||
z
|
||||
F
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
F
|
||||
z
|
||||
R
|
||||
N
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
W
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
u
|
||||
K
|
||||
z
|
||||
F
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
F
|
||||
z
|
||||
z
|
||||
R
|
||||
N
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
M
|
||||
u
|
||||
K
|
||||
z
|
||||
z
|
||||
F
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
F
|
||||
p
|
||||
z
|
||||
z
|
||||
R
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
v
|
||||
K
|
||||
z
|
||||
z
|
||||
p
|
||||
F
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
F
|
||||
F
|
||||
p
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
p
|
||||
F
|
||||
F
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
F
|
||||
"}
|
||||
@@ -0,0 +1,800 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/simulated/floor/lava/harmless,
|
||||
/area/submap/fallenportal)
|
||||
"b" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/weapon/spellbook/oneuse/charge,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"c" = (
|
||||
/mob/living/simple_mob/humanoid/cultist/human/bloodjaunt,
|
||||
/turf/simulated/floor/cult{
|
||||
oxygen = 20.7263
|
||||
},
|
||||
/area/submap/fallenportal)
|
||||
"e" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/random/handgun,
|
||||
/turf/simulated/floor/cult{
|
||||
oxygen = 20.7263
|
||||
},
|
||||
/area/submap/fallenportal)
|
||||
"f" = (
|
||||
/obj/structure/simple_door/cult,
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"h" = (
|
||||
/mob/living/simple_mob/construct/artificer/caster,
|
||||
/turf/simulated/floor/gorefloor2,
|
||||
/area/submap/fallenportal)
|
||||
"k" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/weapon/flame/candle/everburn,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"l" = (
|
||||
/turf/template_noop,
|
||||
/area/submap/fallenportal)
|
||||
"m" = (
|
||||
/obj/fire,
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"n" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/clothing/suit/space/cult,
|
||||
/obj/item/clothing/head/helmet/space/cult,
|
||||
/obj/item/clothing/shoes/cult,
|
||||
/obj/item/weapon/storage/backpack/cultpack,
|
||||
/obj/item/weapon/melee/cultblade,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/turf/simulated/floor/gorefloor2,
|
||||
/area/submap/fallenportal)
|
||||
"o" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/item/weapon/material/knife/ritual,
|
||||
/obj/item/weapon/storage/backpack/cultpack,
|
||||
/obj/item/clothing/suit/space/cult,
|
||||
/obj/item/clothing/shoes/cult,
|
||||
/obj/item/clothing/head/helmet/space/cult,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"p" = (
|
||||
/obj/structure/closet/crate/secure/loot,
|
||||
/obj/item/weapon/twohanded/fireaxe/fluff/mjollnir,
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"q" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/weapon/flame/candle/candelabra/everburn,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"r" = (
|
||||
/obj/fire,
|
||||
/turf/simulated/floor/gorefloor,
|
||||
/area/submap/fallenportal)
|
||||
"t" = (
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"u" = (
|
||||
/obj/item/weapon/deadringer,
|
||||
/obj/item/weapon/vampiric,
|
||||
/obj/item/clothing/suit/armor/pcarrier/bulletproof/full,
|
||||
/turf/simulated/floor/gorefloor2,
|
||||
/area/submap/fallenportal)
|
||||
"v" = (
|
||||
/turf/simulated/floor/cult{
|
||||
oxygen = 20.7263
|
||||
},
|
||||
/area/submap/fallenportal)
|
||||
"w" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/weapon/telecube/randomized,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"x" = (
|
||||
/mob/living/simple_mob/construct/artificer/caster,
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"y" = (
|
||||
/mob/living/simple_mob/vore/demonAI/wendigo{
|
||||
faction = "cult"
|
||||
},
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"z" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/item/weapon/material/knife/ritual,
|
||||
/obj/item/weapon/material/knife/ritual,
|
||||
/obj/item/weapon/storage/backpack/cultpack,
|
||||
/obj/item/clothing/suit/space/cult,
|
||||
/obj/item/clothing/shoes/cult,
|
||||
/obj/item/clothing/head/helmet/space/cult,
|
||||
/obj/item/weapon/storage/belt/bandolier,
|
||||
/obj/item/weapon/storage/pill_bottle/dice_nerd,
|
||||
/obj/item/weapon/shield/riot/tele,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"A" = (
|
||||
/obj/structure/simple_door/sandstone,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"C" = (
|
||||
/mob/living/simple_mob/humanoid/cultist/hunter,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"D" = (
|
||||
/turf/simulated/floor/gorefloor2,
|
||||
/area/submap/fallenportal)
|
||||
"E" = (
|
||||
/mob/living/simple_mob/vore/demonAI{
|
||||
faction = "cult"
|
||||
},
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"F" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/random/weapon/guarenteed,
|
||||
/turf/simulated/floor/cult{
|
||||
oxygen = 20.7263
|
||||
},
|
||||
/area/submap/fallenportal)
|
||||
"G" = (
|
||||
/turf/simulated/wall/sandstone,
|
||||
/area/submap/fallenportal)
|
||||
"H" = (
|
||||
/turf/simulated/floor/gorefloor,
|
||||
/area/submap/fallenportal)
|
||||
"I" = (
|
||||
/mob/living/simple_mob/construct/wraith,
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"J" = (
|
||||
/turf/simulated/wall/cult,
|
||||
/area/submap/fallenportal)
|
||||
"K" = (
|
||||
/obj/structure/table/borosilicate,
|
||||
/obj/item/weapon/melee/cultblade,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"L" = (
|
||||
/obj/structure/closet/crate/secure/loot,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"M" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/clothing/suit/space/cult,
|
||||
/obj/item/clothing/head/helmet/space/cult,
|
||||
/obj/item/clothing/shoes/cult,
|
||||
/obj/item/weapon/storage/backpack/cultpack,
|
||||
/obj/item/weapon/melee/cultblade,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/turf/simulated/floor/gorefloor,
|
||||
/area/submap/fallenportal)
|
||||
"O" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"P" = (
|
||||
/mob/living/simple_mob/humanoid/cultist/human/bloodjaunt/fireball,
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"R" = (
|
||||
/obj/effect/landmark/loot_spawn,
|
||||
/turf/template_noop,
|
||||
/area/submap/fallenportal)
|
||||
"S" = (
|
||||
/mob/living/simple_mob/humanoid/cultist/lizard,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"T" = (
|
||||
/obj/structure/closet/crate,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/item/device/soulstone,
|
||||
/obj/item/weapon/material/knife/ritual,
|
||||
/obj/item/weapon/material/knife/ritual,
|
||||
/obj/item/weapon/storage/backpack/cultpack,
|
||||
/obj/item/clothing/suit/space/cult,
|
||||
/obj/item/clothing/shoes/cult,
|
||||
/obj/item/clothing/head/helmet/space/cult,
|
||||
/obj/item/weapon/storage/bagoplanets,
|
||||
/obj/item/weapon/storage/pill_bottle/peridaxon,
|
||||
/obj/item/weapon/shield/primitive,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"U" = (
|
||||
/mob/living/simple_mob/humanoid/cultist/castertesh,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"V" = (
|
||||
/mob/living/simple_mob/humanoid/cultist/tesh,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
"X" = (
|
||||
/turf/simulated/floor/cult,
|
||||
/area/submap/fallenportal)
|
||||
"Z" = (
|
||||
/mob/living/simple_mob/humanoid/cultist/noodle,
|
||||
/turf/simulated/floor/tiled/asteroid_steel,
|
||||
/area/submap/fallenportal)
|
||||
|
||||
(1,1,1) = {"
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
O
|
||||
O
|
||||
O
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
H
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
l
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
O
|
||||
O
|
||||
l
|
||||
l
|
||||
J
|
||||
J
|
||||
J
|
||||
J
|
||||
J
|
||||
R
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
O
|
||||
l
|
||||
G
|
||||
k
|
||||
t
|
||||
t
|
||||
G
|
||||
T
|
||||
L
|
||||
G
|
||||
l
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
O
|
||||
l
|
||||
l
|
||||
J
|
||||
J
|
||||
m
|
||||
h
|
||||
X
|
||||
J
|
||||
J
|
||||
X
|
||||
E
|
||||
X
|
||||
l
|
||||
l
|
||||
y
|
||||
G
|
||||
F
|
||||
c
|
||||
v
|
||||
A
|
||||
t
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
l
|
||||
l
|
||||
J
|
||||
J
|
||||
m
|
||||
m
|
||||
X
|
||||
X
|
||||
o
|
||||
J
|
||||
D
|
||||
l
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
G
|
||||
K
|
||||
t
|
||||
t
|
||||
G
|
||||
k
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
l
|
||||
J
|
||||
J
|
||||
n
|
||||
m
|
||||
X
|
||||
H
|
||||
X
|
||||
X
|
||||
f
|
||||
H
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
G
|
||||
k
|
||||
t
|
||||
V
|
||||
G
|
||||
S
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
l
|
||||
J
|
||||
m
|
||||
X
|
||||
m
|
||||
X
|
||||
m
|
||||
m
|
||||
m
|
||||
J
|
||||
J
|
||||
l
|
||||
l
|
||||
X
|
||||
X
|
||||
X
|
||||
G
|
||||
G
|
||||
A
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
l
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
l
|
||||
J
|
||||
r
|
||||
m
|
||||
a
|
||||
m
|
||||
m
|
||||
X
|
||||
X
|
||||
x
|
||||
J
|
||||
X
|
||||
X
|
||||
P
|
||||
l
|
||||
D
|
||||
G
|
||||
v
|
||||
v
|
||||
v
|
||||
U
|
||||
t
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
l
|
||||
J
|
||||
X
|
||||
a
|
||||
a
|
||||
a
|
||||
D
|
||||
X
|
||||
m
|
||||
m
|
||||
J
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
G
|
||||
t
|
||||
t
|
||||
t
|
||||
t
|
||||
b
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
l
|
||||
J
|
||||
I
|
||||
a
|
||||
u
|
||||
a
|
||||
m
|
||||
m
|
||||
m
|
||||
p
|
||||
J
|
||||
R
|
||||
l
|
||||
l
|
||||
H
|
||||
l
|
||||
A
|
||||
t
|
||||
t
|
||||
t
|
||||
t
|
||||
q
|
||||
Z
|
||||
G
|
||||
l
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
l
|
||||
J
|
||||
X
|
||||
a
|
||||
a
|
||||
a
|
||||
X
|
||||
X
|
||||
m
|
||||
r
|
||||
J
|
||||
H
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
G
|
||||
t
|
||||
t
|
||||
t
|
||||
t
|
||||
w
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
l
|
||||
J
|
||||
m
|
||||
m
|
||||
a
|
||||
m
|
||||
m
|
||||
D
|
||||
X
|
||||
x
|
||||
J
|
||||
X
|
||||
X
|
||||
P
|
||||
l
|
||||
l
|
||||
G
|
||||
v
|
||||
v
|
||||
v
|
||||
U
|
||||
t
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
l
|
||||
J
|
||||
m
|
||||
X
|
||||
m
|
||||
X
|
||||
m
|
||||
m
|
||||
m
|
||||
J
|
||||
J
|
||||
l
|
||||
l
|
||||
X
|
||||
X
|
||||
X
|
||||
G
|
||||
G
|
||||
A
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
l
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
l
|
||||
J
|
||||
J
|
||||
M
|
||||
m
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
f
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
D
|
||||
G
|
||||
k
|
||||
t
|
||||
V
|
||||
G
|
||||
C
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
l
|
||||
l
|
||||
J
|
||||
J
|
||||
m
|
||||
m
|
||||
X
|
||||
X
|
||||
o
|
||||
J
|
||||
l
|
||||
H
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
G
|
||||
K
|
||||
t
|
||||
t
|
||||
G
|
||||
k
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
O
|
||||
l
|
||||
l
|
||||
J
|
||||
J
|
||||
m
|
||||
x
|
||||
H
|
||||
J
|
||||
J
|
||||
X
|
||||
y
|
||||
X
|
||||
l
|
||||
l
|
||||
E
|
||||
G
|
||||
e
|
||||
c
|
||||
v
|
||||
A
|
||||
t
|
||||
t
|
||||
G
|
||||
l
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
O
|
||||
O
|
||||
l
|
||||
l
|
||||
J
|
||||
J
|
||||
J
|
||||
J
|
||||
J
|
||||
R
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
O
|
||||
l
|
||||
G
|
||||
k
|
||||
t
|
||||
t
|
||||
G
|
||||
z
|
||||
L
|
||||
G
|
||||
l
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
O
|
||||
O
|
||||
O
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
l
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
G
|
||||
l
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
l
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
O
|
||||
"}
|
||||
@@ -0,0 +1,844 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/obj/machinery/crystal/ice,
|
||||
/turf/simulated/floor/outdoors/ice/dark_smooth,
|
||||
/area/submap/frostlake)
|
||||
"d" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"i" = (
|
||||
/turf/simulated/floor/outdoors/ice/dark_smooth,
|
||||
/area/submap/frostlake)
|
||||
"n" = (
|
||||
/obj/random/medical/lite,
|
||||
/turf/simulated/floor/outdoors/ice/dark_smooth,
|
||||
/area/submap/frostlake)
|
||||
"o" = (
|
||||
/turf/simulated/floor/snow{
|
||||
oxygen = 20.7263
|
||||
},
|
||||
/area/submap/frostlake)
|
||||
"s" = (
|
||||
/turf/simulated/mineral/icey,
|
||||
/area/submap/frostlake)
|
||||
"v" = (
|
||||
/obj/machinery/crystal/ice,
|
||||
/turf/simulated/floor/snow{
|
||||
oxygen = 20.7263
|
||||
},
|
||||
/area/submap/frostlake)
|
||||
"A" = (
|
||||
/obj/structure/loot_pile/surface/bones,
|
||||
/turf/simulated/floor/snow{
|
||||
oxygen = 20.7263
|
||||
},
|
||||
/area/submap/frostlake)
|
||||
"D" = (
|
||||
/mob/living/simple_mob/animal/sif/frostfly,
|
||||
/turf/simulated/floor/snow{
|
||||
oxygen = 20.7263
|
||||
},
|
||||
/area/submap/frostlake)
|
||||
"J" = (
|
||||
/obj/random/gun/random,
|
||||
/turf/simulated/floor/snow{
|
||||
oxygen = 20.7263
|
||||
},
|
||||
/area/submap/frostlake)
|
||||
"K" = (
|
||||
/obj/effect/map_effect/interval/effect_emitter/smoke/frost,
|
||||
/obj/item/weapon/telecube/randomized/mated,
|
||||
/turf/simulated/floor/water/hotspring,
|
||||
/area/submap/frostlake)
|
||||
"L" = (
|
||||
/obj/effect/map_effect/interval/effect_emitter/smoke/frost,
|
||||
/turf/simulated/floor/water/hotspring,
|
||||
/area/submap/frostlake)
|
||||
"O" = (
|
||||
/obj/random/medical/pillbottle,
|
||||
/turf/simulated/floor/outdoors/ice/dark_smooth,
|
||||
/area/submap/frostlake)
|
||||
|
||||
(1,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
i
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
n
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
L
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
i
|
||||
i
|
||||
L
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
D
|
||||
i
|
||||
i
|
||||
O
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
n
|
||||
A
|
||||
o
|
||||
o
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
D
|
||||
J
|
||||
i
|
||||
a
|
||||
i
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
O
|
||||
i
|
||||
i
|
||||
a
|
||||
o
|
||||
o
|
||||
o
|
||||
i
|
||||
i
|
||||
i
|
||||
o
|
||||
o
|
||||
A
|
||||
o
|
||||
i
|
||||
i
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
o
|
||||
o
|
||||
o
|
||||
J
|
||||
o
|
||||
a
|
||||
i
|
||||
i
|
||||
o
|
||||
o
|
||||
o
|
||||
o
|
||||
O
|
||||
i
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
D
|
||||
A
|
||||
o
|
||||
o
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
o
|
||||
o
|
||||
o
|
||||
D
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
o
|
||||
o
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
A
|
||||
o
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
K
|
||||
i
|
||||
A
|
||||
o
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
d
|
||||
d
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
L
|
||||
i
|
||||
i
|
||||
o
|
||||
o
|
||||
o
|
||||
i
|
||||
i
|
||||
D
|
||||
o
|
||||
o
|
||||
o
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
d
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
i
|
||||
i
|
||||
D
|
||||
o
|
||||
o
|
||||
A
|
||||
o
|
||||
i
|
||||
o
|
||||
o
|
||||
J
|
||||
o
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
d
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
v
|
||||
J
|
||||
o
|
||||
o
|
||||
v
|
||||
i
|
||||
o
|
||||
o
|
||||
A
|
||||
o
|
||||
D
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
d
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
o
|
||||
o
|
||||
o
|
||||
o
|
||||
o
|
||||
O
|
||||
a
|
||||
o
|
||||
o
|
||||
o
|
||||
o
|
||||
i
|
||||
i
|
||||
i
|
||||
n
|
||||
a
|
||||
i
|
||||
s
|
||||
d
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
i
|
||||
a
|
||||
i
|
||||
A
|
||||
o
|
||||
D
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
o
|
||||
o
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
L
|
||||
i
|
||||
i
|
||||
s
|
||||
d
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
d
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
O
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
d
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
n
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
L
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
a
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(24,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
i
|
||||
i
|
||||
O
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(25,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
s
|
||||
i
|
||||
i
|
||||
i
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(26,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
(27,1,1) = {"
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
d
|
||||
"}
|
||||
@@ -0,0 +1,603 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"n" = (
|
||||
/turf/template_noop,
|
||||
/area/submap/leechpond)
|
||||
"u" = (
|
||||
/turf/simulated/floor/outdoors/mud,
|
||||
/area/submap/leechpond)
|
||||
"y" = (
|
||||
/turf/simulated/floor/wood/sif,
|
||||
/area/submap/leechpond)
|
||||
"C" = (
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/leechpond)
|
||||
"G" = (
|
||||
/turf/simulated/wall/log_sif,
|
||||
/area/submap/leechpond)
|
||||
"T" = (
|
||||
/mob/living/simple_mob/faithless/strong,
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/leechpond)
|
||||
"U" = (
|
||||
/obj/effect/landmark/loot_spawn,
|
||||
/turf/simulated/floor/wood/sif,
|
||||
/area/submap/leechpond)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
a
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
a
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
T
|
||||
C
|
||||
C
|
||||
G
|
||||
G
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
G
|
||||
y
|
||||
C
|
||||
C
|
||||
U
|
||||
G
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
G
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
y
|
||||
C
|
||||
T
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
n
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
y
|
||||
y
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
G
|
||||
y
|
||||
T
|
||||
C
|
||||
C
|
||||
G
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
a
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
G
|
||||
U
|
||||
C
|
||||
C
|
||||
U
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
G
|
||||
G
|
||||
G
|
||||
C
|
||||
G
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
C
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
C
|
||||
C
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,643 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/simulated/mineral/floor/cave,
|
||||
/area/submap/leppy)
|
||||
"b" = (
|
||||
/obj/structure/table/gold,
|
||||
/obj/random/energy/highend,
|
||||
/obj/random/meat,
|
||||
/obj/random/meat,
|
||||
/turf/simulated/mineral/floor/cave,
|
||||
/area/submap/leppy)
|
||||
"d" = (
|
||||
/mob/living/simple_mob/vore/lamia/random,
|
||||
/turf/simulated/mineral/floor/cave,
|
||||
/area/submap/leppy)
|
||||
"r" = (
|
||||
/obj/structure/table/gold,
|
||||
/obj/random/contraband/nofail,
|
||||
/turf/simulated/mineral/floor/cave,
|
||||
/area/submap/leppy)
|
||||
"s" = (
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil,
|
||||
/obj/item/seeds/random,
|
||||
/turf/simulated/mineral/floor/cave,
|
||||
/area/submap/leppy)
|
||||
"t" = (
|
||||
/mob/living/simple_mob/vore/leopardmander/exotic,
|
||||
/turf/simulated/floor/water/ocean{
|
||||
outdoors = 0
|
||||
},
|
||||
/area/submap/leppy)
|
||||
"z" = (
|
||||
/turf/simulated/mineral/ignore_mapgen,
|
||||
/area/submap/leppy)
|
||||
"A" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"D" = (
|
||||
/obj/structure/table/gold,
|
||||
/obj/random/medical/pillbottle,
|
||||
/turf/simulated/mineral/floor/cave,
|
||||
/area/submap/leppy)
|
||||
"F" = (
|
||||
/obj/structure/table/gold,
|
||||
/obj/random/meat,
|
||||
/obj/random/meat,
|
||||
/obj/random/meat,
|
||||
/turf/simulated/mineral/floor/cave,
|
||||
/area/submap/leppy)
|
||||
"J" = (
|
||||
/obj/structure/table/gold,
|
||||
/obj/random/maintenance/misc,
|
||||
/turf/simulated/mineral/floor/cave,
|
||||
/area/submap/leppy)
|
||||
"K" = (
|
||||
/turf/simulated/wall/sandstone,
|
||||
/area/submap/leppy)
|
||||
"L" = (
|
||||
/turf/simulated/floor/water/ocean{
|
||||
outdoors = 0
|
||||
},
|
||||
/area/submap/leppy)
|
||||
"Z" = (
|
||||
/obj/machinery/portable_atmospherics/hydroponics/soil,
|
||||
/obj/item/seeds/ambrosiavulgarisseed,
|
||||
/turf/simulated/mineral/floor/cave,
|
||||
/area/submap/leppy)
|
||||
|
||||
(1,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
K
|
||||
r
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
r
|
||||
K
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
K
|
||||
D
|
||||
d
|
||||
a
|
||||
a
|
||||
a
|
||||
J
|
||||
K
|
||||
A
|
||||
z
|
||||
z
|
||||
z
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
K
|
||||
r
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
r
|
||||
K
|
||||
z
|
||||
z
|
||||
a
|
||||
z
|
||||
z
|
||||
z
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
z
|
||||
z
|
||||
K
|
||||
K
|
||||
K
|
||||
a
|
||||
a
|
||||
K
|
||||
K
|
||||
K
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
z
|
||||
A
|
||||
A
|
||||
A
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
A
|
||||
A
|
||||
A
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
z
|
||||
A
|
||||
A
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
A
|
||||
A
|
||||
z
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
A
|
||||
A
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
A
|
||||
A
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
A
|
||||
A
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
A
|
||||
A
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
A
|
||||
A
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
A
|
||||
A
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
A
|
||||
A
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
A
|
||||
A
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
t
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
z
|
||||
z
|
||||
A
|
||||
A
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
A
|
||||
A
|
||||
z
|
||||
z
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
z
|
||||
A
|
||||
A
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
z
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
A
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
z
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
K
|
||||
A
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
K
|
||||
K
|
||||
K
|
||||
a
|
||||
a
|
||||
K
|
||||
a
|
||||
a
|
||||
L
|
||||
L
|
||||
L
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
K
|
||||
A
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
K
|
||||
F
|
||||
a
|
||||
a
|
||||
a
|
||||
K
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
K
|
||||
s
|
||||
a
|
||||
Z
|
||||
K
|
||||
A
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
K
|
||||
F
|
||||
d
|
||||
a
|
||||
a
|
||||
K
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
K
|
||||
a
|
||||
d
|
||||
a
|
||||
K
|
||||
A
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
K
|
||||
b
|
||||
a
|
||||
a
|
||||
a
|
||||
K
|
||||
z
|
||||
z
|
||||
z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
z
|
||||
K
|
||||
s
|
||||
a
|
||||
Z
|
||||
K
|
||||
A
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
A
|
||||
A
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
z
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
A
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
A
|
||||
"}
|
||||
@@ -0,0 +1,997 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/simulated/floor/dungeon,
|
||||
/area/submap/metroidmaze)
|
||||
"p" = (
|
||||
/turf/simulated/wall/gold{
|
||||
can_open = 1
|
||||
},
|
||||
/area/submap/metroidmaze)
|
||||
"s" = (
|
||||
/turf/simulated/wall/dungeon{
|
||||
can_open = 1
|
||||
},
|
||||
/area/submap/metroidmaze)
|
||||
"w" = (
|
||||
/mob/living/simple_mob/metroid/juvenile/omega,
|
||||
/turf/simulated/floor/dungeon,
|
||||
/area/submap/metroidmaze)
|
||||
"D" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"E" = (
|
||||
/mob/living/simple_mob/metroid/juvenile/alpha,
|
||||
/turf/simulated/floor/dungeon,
|
||||
/area/submap/metroidmaze)
|
||||
"F" = (
|
||||
/obj/structure/table/standard,
|
||||
/obj/random/projectile/random,
|
||||
/obj/random/energy/highend,
|
||||
/obj/random/firstaid,
|
||||
/obj/random/medical/pillbottle,
|
||||
/turf/simulated/floor/dungeon,
|
||||
/area/submap/metroidmaze)
|
||||
"Z" = (
|
||||
/turf/simulated/wall/dungeon,
|
||||
/area/submap/metroidmaze)
|
||||
|
||||
(1,1,1) = {"
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
D
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
D
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
D
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
E
|
||||
p
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
D
|
||||
Z
|
||||
a
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
E
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
D
|
||||
Z
|
||||
a
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
p
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
D
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
D
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
F
|
||||
a
|
||||
a
|
||||
F
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
w
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
F
|
||||
a
|
||||
a
|
||||
F
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
s
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
D
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(24,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(25,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
E
|
||||
p
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(26,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(27,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(28,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(29,1,1) = {"
|
||||
D
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
a
|
||||
Z
|
||||
Z
|
||||
D
|
||||
"}
|
||||
(30,1,1) = {"
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
D
|
||||
"}
|
||||
@@ -0,0 +1,833 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
/obj/machinery/atmospherics/unary/engine{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/submap/mouseattack)
|
||||
"c" = (
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"d" = (
|
||||
/obj/machinery/door/blast/shutters,
|
||||
/obj/effect/floor_decal/corner/grey/diagonal,
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/submap/mouseattack)
|
||||
"i" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/random/rigsuit/chancetofail,
|
||||
/obj/item/rig_module/mounted/phase,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/security,
|
||||
/obj/random/maintenance/security,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"j" = (
|
||||
/turf/simulated/wall/gold,
|
||||
/area/submap/mouseattack)
|
||||
"l" = (
|
||||
/mob/living/simple_mob/mechanical/mecha/mouse_tank/livewire/manned,
|
||||
/obj/effect/floor_decal/corner/grey/diagonal,
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/submap/mouseattack)
|
||||
"o" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/random/rigsuit/chancetofail,
|
||||
/obj/item/rig_module/voice,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/security,
|
||||
/obj/random/maintenance/security,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"q" = (
|
||||
/mob/living/simple_mob/mechanical/mecha/mouse_tank/eraticator/manned,
|
||||
/obj/effect/floor_decal/corner/grey/diagonal,
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/submap/mouseattack)
|
||||
"s" = (
|
||||
/obj/effect/floor_decal/corner/grey/diagonal,
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/submap/mouseattack)
|
||||
"t" = (
|
||||
/obj/structure/shuttle/engine/heater,
|
||||
/turf/simulated/wall/gold,
|
||||
/area/submap/mouseattack)
|
||||
"u" = (
|
||||
/mob/living/simple_mob/animal/space/mouse_army/ammo,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"v" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/rig_module/chem_dispenser/injector/advanced,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/security,
|
||||
/obj/random/maintenance/security,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"w" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/rig_module/device/defib,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/security,
|
||||
/obj/random/maintenance/security,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"y" = (
|
||||
/turf/template_noop,
|
||||
/area/submap/mouseattack)
|
||||
"z" = (
|
||||
/obj/machinery/door/blast/shutters,
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/submap/mouseattack)
|
||||
"B" = (
|
||||
/mob/living/simple_mob/animal/space/mouse_army/operative,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"C" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/random/rigsuit/chancetofail,
|
||||
/obj/item/rig_module/rad_shield,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/security,
|
||||
/obj/random/maintenance/security,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"D" = (
|
||||
/mob/living/simple_mob/mechanical/mecha/mouse_tank/eraticator/manned,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"J" = (
|
||||
/mob/living/simple_mob/mechanical/mecha/mouse_tank/livewire/manned,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"N" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/random/rigsuit/chancetofail,
|
||||
/obj/item/rig_module/fabricator,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/item/weapon/archaeological_find,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/research,
|
||||
/obj/random/maintenance/security,
|
||||
/obj/random/maintenance/security,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"S" = (
|
||||
/obj/machinery/door/airlock/gold,
|
||||
/turf/simulated/floor/tiled/yellow,
|
||||
/area/submap/mouseattack)
|
||||
"X" = (
|
||||
/turf/simulated/wall/r_wall,
|
||||
/area/submap/mouseattack)
|
||||
"Y" = (
|
||||
/mob/living/simple_mob/mechanical/mecha/mouse_tank/manned,
|
||||
/obj/effect/floor_decal/corner/grey/diagonal,
|
||||
/turf/simulated/floor/tiled/dark,
|
||||
/area/submap/mouseattack)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
a
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
a
|
||||
d
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
q
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
a
|
||||
d
|
||||
s
|
||||
Y
|
||||
s
|
||||
s
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
a
|
||||
d
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
j
|
||||
c
|
||||
c
|
||||
B
|
||||
c
|
||||
c
|
||||
c
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
a
|
||||
d
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
j
|
||||
J
|
||||
c
|
||||
N
|
||||
w
|
||||
c
|
||||
J
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
a
|
||||
d
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
B
|
||||
c
|
||||
c
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
a
|
||||
d
|
||||
s
|
||||
Y
|
||||
s
|
||||
s
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
a
|
||||
d
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
q
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
a
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
a
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
a
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
Y
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
l
|
||||
s
|
||||
s
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
u
|
||||
c
|
||||
c
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
j
|
||||
D
|
||||
c
|
||||
v
|
||||
o
|
||||
c
|
||||
D
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
u
|
||||
c
|
||||
c
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
l
|
||||
s
|
||||
s
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
Y
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
a
|
||||
a
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
a
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
a
|
||||
a
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
y
|
||||
a
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
a
|
||||
a
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
a
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
Y
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(24,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
q
|
||||
s
|
||||
s
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(25,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
u
|
||||
c
|
||||
c
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(26,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
j
|
||||
J
|
||||
c
|
||||
i
|
||||
C
|
||||
c
|
||||
J
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(27,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
j
|
||||
c
|
||||
c
|
||||
B
|
||||
c
|
||||
c
|
||||
c
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(28,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
l
|
||||
s
|
||||
s
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
j
|
||||
S
|
||||
j
|
||||
t
|
||||
b
|
||||
s
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(29,1,1) = {"
|
||||
a
|
||||
a
|
||||
z
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
s
|
||||
q
|
||||
s
|
||||
X
|
||||
a
|
||||
"}
|
||||
(30,1,1) = {"
|
||||
a
|
||||
a
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
X
|
||||
a
|
||||
"}
|
||||
(31,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,853 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/obj/item/stack/material/phoron{
|
||||
amount = 10
|
||||
},
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"c" = (
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/phorondragon)
|
||||
"d" = (
|
||||
/obj/item/weapon/cell/hyper,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"i" = (
|
||||
/mob/living/simple_mob/vore/aggressive/dragon/virgo3b,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"j" = (
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"k" = (
|
||||
/turf/simulated/floor/water/deep,
|
||||
/area/submap/phorondragon)
|
||||
"n" = (
|
||||
/obj/item/slime_extract/purple,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"s" = (
|
||||
/obj/structure/outcrop/phoron,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"u" = (
|
||||
/obj/item/toy/plushie/carp/nebula,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"x" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"A" = (
|
||||
/obj/item/slime_extract/dark_purple,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"E" = (
|
||||
/obj/item/mecha_parts/mecha_equipment/weapon/phoron_bore,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"H" = (
|
||||
/turf/simulated/wall/phoron,
|
||||
/area/submap/phorondragon)
|
||||
"J" = (
|
||||
/turf/simulated/mineral,
|
||||
/area/submap/phorondragon)
|
||||
"P" = (
|
||||
/obj/item/weapon/gun/magnetic/matfed/phoronbore,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"S" = (
|
||||
/obj/effect/landmark/loot_spawn,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
"U" = (
|
||||
/obj/structure/prop/statue/phoron,
|
||||
/turf/simulated/floor/water/deep,
|
||||
/area/submap/phorondragon)
|
||||
"W" = (
|
||||
/obj/effect/landmark/loot_spawn/low,
|
||||
/turf/simulated/floor/outdoors/rocks/caves,
|
||||
/area/submap/phorondragon)
|
||||
|
||||
(1,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
U
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
x
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
c
|
||||
c
|
||||
c
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
U
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
S
|
||||
j
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
c
|
||||
c
|
||||
x
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
s
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
U
|
||||
c
|
||||
c
|
||||
x
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
j
|
||||
j
|
||||
a
|
||||
j
|
||||
s
|
||||
W
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
x
|
||||
x
|
||||
J
|
||||
S
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
x
|
||||
x
|
||||
J
|
||||
j
|
||||
j
|
||||
j
|
||||
i
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
x
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
x
|
||||
J
|
||||
J
|
||||
j
|
||||
n
|
||||
j
|
||||
j
|
||||
j
|
||||
a
|
||||
j
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
k
|
||||
U
|
||||
k
|
||||
k
|
||||
k
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
x
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
x
|
||||
J
|
||||
j
|
||||
s
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
s
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
x
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
x
|
||||
J
|
||||
j
|
||||
W
|
||||
j
|
||||
j
|
||||
W
|
||||
s
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
x
|
||||
J
|
||||
j
|
||||
j
|
||||
a
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
W
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
c
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
x
|
||||
J
|
||||
j
|
||||
j
|
||||
H
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
s
|
||||
j
|
||||
j
|
||||
a
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
s
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
x
|
||||
J
|
||||
s
|
||||
H
|
||||
j
|
||||
a
|
||||
j
|
||||
j
|
||||
i
|
||||
j
|
||||
j
|
||||
A
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
J
|
||||
J
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
x
|
||||
J
|
||||
J
|
||||
E
|
||||
j
|
||||
s
|
||||
d
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
W
|
||||
s
|
||||
j
|
||||
j
|
||||
j
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
x
|
||||
x
|
||||
J
|
||||
j
|
||||
j
|
||||
P
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
a
|
||||
j
|
||||
j
|
||||
i
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
J
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
u
|
||||
a
|
||||
H
|
||||
j
|
||||
j
|
||||
s
|
||||
W
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
a
|
||||
j
|
||||
j
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
H
|
||||
a
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
s
|
||||
j
|
||||
j
|
||||
S
|
||||
J
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(24,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
s
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
a
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
J
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(25,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
J
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
j
|
||||
S
|
||||
J
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(26,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
J
|
||||
S
|
||||
J
|
||||
J
|
||||
J
|
||||
J
|
||||
J
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
(27,1,1) = {"
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
J
|
||||
J
|
||||
J
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
x
|
||||
"}
|
||||
@@ -0,0 +1,568 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
"b" = (
|
||||
/obj/structure/grille,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/simulated/floor,
|
||||
/area/submap/solarmoff)
|
||||
"c" = (
|
||||
/obj/structure/grille,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4;
|
||||
health = 1e+006
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/simulated/floor,
|
||||
/area/submap/solarmoff)
|
||||
"d" = (
|
||||
/obj/item/weapon/melee/energy/sword/imperial,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"g" = (
|
||||
/obj/effect/decal/cleanable/ash,
|
||||
/obj/random/energy/highend,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"i" = (
|
||||
/obj/structure/grille,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/simulated/floor,
|
||||
/area/submap/solarmoff)
|
||||
"m" = (
|
||||
/obj/item/weapon/storage/secure/briefcase/fuelrod,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"n" = (
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/solarmoff)
|
||||
"p" = (
|
||||
/obj/item/rig_module/ai_container,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"s" = (
|
||||
/obj/item/rig_module/vision/thermal,
|
||||
/obj/effect/decal/cleanable/ash,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"u" = (
|
||||
/turf/simulated/wall/r_wall,
|
||||
/area/submap/solarmoff)
|
||||
"v" = (
|
||||
/obj/effect/decal/cleanable/ash,
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/solarmoff)
|
||||
"B" = (
|
||||
/obj/structure/grille,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4;
|
||||
health = 1e+006
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/turf/simulated/floor,
|
||||
/area/submap/solarmoff)
|
||||
"C" = (
|
||||
/obj/effect/decal/cleanable/ash,
|
||||
/obj/item/rig_module/atmos_shield,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"E" = (
|
||||
/mob/living/simple_mob/animal/space/carp/large,
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/solarmoff)
|
||||
"F" = (
|
||||
/obj/random/energy/highend,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"G" = (
|
||||
/turf/simulated/mineral/crystal_shiny,
|
||||
/area/submap/solarmoff)
|
||||
"I" = (
|
||||
/obj/effect/decal/cleanable/ash,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"J" = (
|
||||
/turf/simulated/floor,
|
||||
/area/submap/solarmoff)
|
||||
"K" = (
|
||||
/obj/structure/grille,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4;
|
||||
health = 1e+006
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/turf/simulated/floor,
|
||||
/area/submap/solarmoff)
|
||||
"L" = (
|
||||
/obj/structure/grille,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/simulated/floor,
|
||||
/area/submap/solarmoff)
|
||||
"M" = (
|
||||
/obj/structure/flora/ausbushes/reedbush,
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/solarmoff)
|
||||
"N" = (
|
||||
/obj/structure/flora/ausbushes/reedbush,
|
||||
/obj/effect/decal/cleanable/ash,
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/solarmoff)
|
||||
"P" = (
|
||||
/obj/structure/grille,
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4;
|
||||
health = 1e+006
|
||||
},
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/simulated/floor,
|
||||
/area/submap/solarmoff)
|
||||
"R" = (
|
||||
/obj/structure/flora/lily2,
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/solarmoff)
|
||||
"T" = (
|
||||
/obj/effect/decal/cleanable/ash,
|
||||
/obj/item/rig_module/rescue_pharm,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"U" = (
|
||||
/mob/living/simple_mob/vore/solarmoth,
|
||||
/obj/item/rig_module/device/stamp,
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"V" = (
|
||||
/turf/simulated/mineral/floor/ignore_mapgen,
|
||||
/area/submap/solarmoff)
|
||||
"W" = (
|
||||
/obj/machinery/door/airlock/highsecurity,
|
||||
/turf/simulated/floor,
|
||||
/area/submap/solarmoff)
|
||||
|
||||
(1,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
u
|
||||
B
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
K
|
||||
P
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
n
|
||||
M
|
||||
n
|
||||
R
|
||||
n
|
||||
n
|
||||
n
|
||||
n
|
||||
M
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
n
|
||||
n
|
||||
R
|
||||
n
|
||||
n
|
||||
E
|
||||
n
|
||||
n
|
||||
R
|
||||
n
|
||||
n
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
a
|
||||
a
|
||||
L
|
||||
n
|
||||
n
|
||||
E
|
||||
n
|
||||
n
|
||||
n
|
||||
n
|
||||
M
|
||||
n
|
||||
n
|
||||
E
|
||||
n
|
||||
n
|
||||
L
|
||||
a
|
||||
a
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
M
|
||||
n
|
||||
n
|
||||
M
|
||||
v
|
||||
G
|
||||
G
|
||||
G
|
||||
n
|
||||
n
|
||||
n
|
||||
n
|
||||
M
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
n
|
||||
R
|
||||
n
|
||||
n
|
||||
G
|
||||
G
|
||||
s
|
||||
G
|
||||
G
|
||||
M
|
||||
R
|
||||
n
|
||||
n
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
n
|
||||
n
|
||||
n
|
||||
G
|
||||
G
|
||||
p
|
||||
I
|
||||
F
|
||||
G
|
||||
G
|
||||
n
|
||||
n
|
||||
n
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
n
|
||||
E
|
||||
M
|
||||
G
|
||||
T
|
||||
V
|
||||
U
|
||||
I
|
||||
m
|
||||
G
|
||||
n
|
||||
E
|
||||
n
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
n
|
||||
n
|
||||
R
|
||||
G
|
||||
G
|
||||
g
|
||||
I
|
||||
d
|
||||
G
|
||||
G
|
||||
n
|
||||
R
|
||||
n
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
M
|
||||
n
|
||||
n
|
||||
n
|
||||
G
|
||||
G
|
||||
C
|
||||
G
|
||||
G
|
||||
N
|
||||
n
|
||||
n
|
||||
M
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
a
|
||||
a
|
||||
b
|
||||
n
|
||||
n
|
||||
M
|
||||
n
|
||||
n
|
||||
G
|
||||
G
|
||||
G
|
||||
n
|
||||
R
|
||||
n
|
||||
n
|
||||
n
|
||||
b
|
||||
a
|
||||
a
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
a
|
||||
a
|
||||
c
|
||||
n
|
||||
n
|
||||
E
|
||||
n
|
||||
n
|
||||
M
|
||||
n
|
||||
n
|
||||
n
|
||||
n
|
||||
E
|
||||
n
|
||||
n
|
||||
i
|
||||
a
|
||||
a
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
n
|
||||
n
|
||||
R
|
||||
n
|
||||
n
|
||||
E
|
||||
n
|
||||
R
|
||||
n
|
||||
n
|
||||
n
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
u
|
||||
u
|
||||
n
|
||||
M
|
||||
n
|
||||
n
|
||||
n
|
||||
n
|
||||
n
|
||||
n
|
||||
M
|
||||
u
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
u
|
||||
B
|
||||
K
|
||||
P
|
||||
u
|
||||
W
|
||||
u
|
||||
B
|
||||
K
|
||||
P
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
u
|
||||
J
|
||||
u
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
a
|
||||
"}
|
||||
@@ -0,0 +1,455 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"a" = (
|
||||
/obj/structure/railing,
|
||||
/turf/simulated/floor/outdoors/grass/sif,
|
||||
/area/submap/teppifarm)
|
||||
"b" = (
|
||||
/obj/structure/railing{
|
||||
dir = 4
|
||||
},
|
||||
/turf/simulated/floor/outdoors/grass/sif,
|
||||
/area/submap/teppifarm)
|
||||
"c" = (
|
||||
/obj/structure/railing,
|
||||
/obj/structure/railing{
|
||||
dir = 8;
|
||||
icon_state = "railing0"
|
||||
},
|
||||
/turf/simulated/floor/outdoors/grass/sif,
|
||||
/area/submap/teppifarm)
|
||||
"g" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/outdoors/dirt,
|
||||
/area/template_noop)
|
||||
"h" = (
|
||||
/obj/random/energy/highend,
|
||||
/obj/item/weapon/material/knife/machete/hatchet/unathiknife,
|
||||
/obj/structure/closet/crate,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"i" = (
|
||||
/obj/effect/decal/cleanable/blood/oil/streak,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"j" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/outdoors/grass/sif,
|
||||
/area/submap/teppifarm)
|
||||
"k" = (
|
||||
/turf/simulated/wall/wood,
|
||||
/area/submap/teppifarm)
|
||||
"l" = (
|
||||
/turf/simulated/floor/outdoors/dirt,
|
||||
/area/template_noop)
|
||||
"m" = (
|
||||
/obj/structure/table/standard,
|
||||
/obj/item/weapon/material/minihoe,
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/large,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"p" = (
|
||||
/obj/structure/table/standard,
|
||||
/obj/item/weapon/material/knife/machete/hatchet,
|
||||
/obj/item/weapon/reagent_containers/glass/bucket,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"q" = (
|
||||
/obj/machinery/portable_atmospherics/hydroponics,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"r" = (
|
||||
/obj/structure/table/woodentable,
|
||||
/obj/random/contraband/nofail,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"s" = (
|
||||
/obj/structure/table/woodentable,
|
||||
/obj/item/weapon/flame/candle/candelabra,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"t" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/outdoors/dirt,
|
||||
/area/template_noop)
|
||||
"u" = (
|
||||
/turf/simulated/floor/outdoors/grass/sif,
|
||||
/area/submap/teppifarm)
|
||||
"x" = (
|
||||
/obj/structure/window/basic,
|
||||
/obj/structure/curtain/black,
|
||||
/obj/structure/table/standard,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"y" = (
|
||||
/obj/effect/decal/cleanable/blood/oil/streak,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"z" = (
|
||||
/obj/structure/window/basic,
|
||||
/obj/effect/landmark/loot_spawn,
|
||||
/obj/structure/curtain/black,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"A" = (
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/melee/umbrella/random,
|
||||
/obj/item/weapon/gun/energy/taser/xeno,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"B" = (
|
||||
/obj/structure/simple_door/wood,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"C" = (
|
||||
/obj/structure/railing{
|
||||
dir = 8;
|
||||
icon_state = "railing0"
|
||||
},
|
||||
/turf/simulated/floor/outdoors/grass/sif,
|
||||
/area/submap/teppifarm)
|
||||
"D" = (
|
||||
/turf/simulated/floor/water,
|
||||
/area/submap/teppifarm)
|
||||
"E" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/landmark/loot_spawn,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"G" = (
|
||||
/obj/structure/simple_door/wood,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"H" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/loot_pile/surface/bones,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"I" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/closet/crate/hydroponics/exotic,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"L" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/outdoors/dirt,
|
||||
/area/template_noop)
|
||||
"M" = (
|
||||
/obj/structure/simple_door/wood,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"O" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"P" = (
|
||||
/obj/item/weapon/material/shard,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"Q" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"S" = (
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"U" = (
|
||||
/mob/living/simple_mob/vore/alienanimals/teppi,
|
||||
/turf/simulated/floor/outdoors/grass/sif,
|
||||
/area/submap/teppifarm)
|
||||
"V" = (
|
||||
/obj/effect/decal/cleanable/blood/oil/streak,
|
||||
/obj/structure/table/rack,
|
||||
/obj/item/weapon/melee/umbrella/random,
|
||||
/obj/item/weapon/gun/energy/taser/xeno,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"W" = (
|
||||
/obj/structure/railing{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/railing,
|
||||
/turf/simulated/floor/outdoors/grass/sif,
|
||||
/area/submap/teppifarm)
|
||||
"X" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"Y" = (
|
||||
/obj/structure/bed/padded,
|
||||
/obj/item/weapon/bedsheet/blue,
|
||||
/turf/simulated/floor/wood/alt,
|
||||
/area/submap/teppifarm)
|
||||
"Z" = (
|
||||
/turf/template_noop,
|
||||
/area/template_noop)
|
||||
|
||||
(1,1,1) = {"
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
"}
|
||||
(2,1,1) = {"
|
||||
Z
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
C
|
||||
C
|
||||
C
|
||||
C
|
||||
c
|
||||
Z
|
||||
"}
|
||||
(3,1,1) = {"
|
||||
Z
|
||||
k
|
||||
Y
|
||||
O
|
||||
k
|
||||
s
|
||||
E
|
||||
V
|
||||
k
|
||||
u
|
||||
u
|
||||
U
|
||||
u
|
||||
a
|
||||
Z
|
||||
"}
|
||||
(4,1,1) = {"
|
||||
Z
|
||||
k
|
||||
r
|
||||
Q
|
||||
k
|
||||
Q
|
||||
H
|
||||
Q
|
||||
P
|
||||
j
|
||||
u
|
||||
u
|
||||
u
|
||||
a
|
||||
Z
|
||||
"}
|
||||
(5,1,1) = {"
|
||||
Z
|
||||
k
|
||||
s
|
||||
O
|
||||
k
|
||||
i
|
||||
Q
|
||||
Q
|
||||
O
|
||||
u
|
||||
u
|
||||
u
|
||||
u
|
||||
a
|
||||
Z
|
||||
"}
|
||||
(6,1,1) = {"
|
||||
Z
|
||||
k
|
||||
h
|
||||
O
|
||||
k
|
||||
s
|
||||
Q
|
||||
A
|
||||
k
|
||||
u
|
||||
u
|
||||
u
|
||||
D
|
||||
a
|
||||
Z
|
||||
"}
|
||||
(7,1,1) = {"
|
||||
Z
|
||||
k
|
||||
k
|
||||
G
|
||||
k
|
||||
k
|
||||
B
|
||||
k
|
||||
k
|
||||
b
|
||||
b
|
||||
b
|
||||
b
|
||||
W
|
||||
Z
|
||||
"}
|
||||
(8,1,1) = {"
|
||||
Z
|
||||
k
|
||||
s
|
||||
O
|
||||
O
|
||||
X
|
||||
O
|
||||
B
|
||||
L
|
||||
t
|
||||
g
|
||||
g
|
||||
l
|
||||
l
|
||||
Z
|
||||
"}
|
||||
(9,1,1) = {"
|
||||
Z
|
||||
k
|
||||
s
|
||||
O
|
||||
X
|
||||
y
|
||||
O
|
||||
M
|
||||
L
|
||||
L
|
||||
g
|
||||
g
|
||||
l
|
||||
Z
|
||||
Z
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
Z
|
||||
k
|
||||
k
|
||||
M
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
g
|
||||
g
|
||||
t
|
||||
l
|
||||
l
|
||||
Z
|
||||
Z
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
Z
|
||||
k
|
||||
I
|
||||
O
|
||||
Q
|
||||
X
|
||||
O
|
||||
z
|
||||
t
|
||||
l
|
||||
l
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
Z
|
||||
k
|
||||
S
|
||||
O
|
||||
O
|
||||
O
|
||||
Q
|
||||
z
|
||||
g
|
||||
l
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
Z
|
||||
k
|
||||
q
|
||||
q
|
||||
q
|
||||
p
|
||||
m
|
||||
x
|
||||
l
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
Z
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
k
|
||||
l
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
Z
|
||||
"}
|
||||
@@ -0,0 +1,280 @@
|
||||
// This causes PoI maps to get 'checked' and compiled, when undergoing a unit test.
|
||||
// This is so CI can validate PoIs, and ensure future changes don't break PoIs, as PoIs are loaded at runtime and the compiler can't catch errors.
|
||||
// When adding a new PoI, please add it to this list.
|
||||
#if MAP_TEST
|
||||
#include "begderg.dmm"
|
||||
#include "blobden.dmm"
|
||||
#include "bloodchurch.dmm"
|
||||
#include "clockwork.dmm"
|
||||
#include "cove.dmm"
|
||||
#include "crashedexplo.dmm"
|
||||
#include "demonranch.dmm"
|
||||
#include "dronelord.dmm"
|
||||
#include "fallenportal.dmm"
|
||||
#include "frostlake.dmm"
|
||||
#include "leechpond.dmm"
|
||||
#include "leppy.dmm"
|
||||
#include "mausarmy.dmm"
|
||||
#include "metroidmaze.dmm"
|
||||
#include "phorondragon.dmm"
|
||||
#include "piratefortress.dmm"
|
||||
#include "piratevessel.dmm"
|
||||
#include "piratevox.dmm"
|
||||
#include "plontden.dmm"
|
||||
#include "Redshuttledown.dmm"
|
||||
#include "solarmoff.dmm"
|
||||
#include "spooderchurch.dmm"
|
||||
#include "teppifarm.dmm"
|
||||
#include "vault.dmm"
|
||||
#include "xenobio.dmm"
|
||||
#endif
|
||||
|
||||
/datum/map_template/surface/valley
|
||||
name = "Surface Content - Valley"
|
||||
desc = "Used to make a place of strange terror."
|
||||
|
||||
//For POIs in the valley walls.
|
||||
/datum/map_template/surface/valley/walls
|
||||
|
||||
//For POIs in the center.
|
||||
/dataum/map_template/surface/valley/inner
|
||||
|
||||
/datum/map_template/surface/valley/walls/begderg
|
||||
name = "Dragon Den"
|
||||
desc = "A rocky den for a big dragon rematch"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/begderg.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/blobden
|
||||
name = "Blob Den"
|
||||
desc = "An large supply drop with an unfortante guest"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/blobden.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/bloodchurch
|
||||
name = "Blood Church"
|
||||
desc = "A chorus of carnage sung from high above."
|
||||
mappath = 'maps/submaps/surface_submaps/valley/bloodchurch.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/walls/carriershuttle
|
||||
name = "Carrier Shuttle"
|
||||
desc = "A parked merc shuttle with a mini zoo"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/carriershuttle.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/cliffmanor
|
||||
name = "Cliff Manor"
|
||||
desc = "A small shack surronded by jellyfish and a moat"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/cliffmanor.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/walls/clockwork
|
||||
name = "Clockwork Den"
|
||||
desc = "A firey pit with what remains of a nigh fallen church"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/clockwork.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/cove
|
||||
name = "Pirate Cove"
|
||||
desc = "A cove full of pirates. And a brawl outside."
|
||||
mappath = 'maps/submaps/surface_submaps/valley/cove.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/crashedexplo
|
||||
name = "Spider Explo"
|
||||
desc = "Oh look, some spider explorers"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/crashedexplo.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/demonranch
|
||||
name = "Demon Ranch"
|
||||
desc = "A farm made in an attempt to reduced demon summoning costs."
|
||||
mappath = 'maps/submaps/surface_submaps/valley/demonranch.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/dronelord
|
||||
name = "Drone Overlords"
|
||||
desc = "A duo of bounty hunters utlizing drones"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/dronelord.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/inner/eclipseaqua
|
||||
name = "Eclipse Base Aqua"
|
||||
desc = "An island base making a certian chem"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/eclipseaqua.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/eclipsedigsight
|
||||
name = "Eclipse Base Dig"
|
||||
desc = "A large scale xenoarch digsite."
|
||||
mappath = 'maps/submaps/surface_submaps/valley/eclipsedigsight.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/eclipselava
|
||||
name = "Eclipse Base Molten"
|
||||
desc = "A well defended base guarding a strange expirement"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/eclipselava.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/eclipsemountain
|
||||
name = "Eclipse Base Mountain"
|
||||
desc = "A telecomns base"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/eclipsemountain.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/walls/fallenlab
|
||||
name = "Fallen Lab"
|
||||
desc = "A lab created to expirment with nanites, long since forgotten"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/fallenlab.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/fallenportal
|
||||
name = "Failed Portal"
|
||||
desc = "Someone attemted to create a portal to redspace. Forgot the BSA"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/fallenportal.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/frostlake
|
||||
name = "Frost Lake"
|
||||
desc = "Ice Puzzle, now with death"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/frostlake.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/walls/hydroxeno
|
||||
name = "Aquatic Xenos"
|
||||
desc = "Xenomoprhs in a squish cave"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/hydroxeno.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/leechpond
|
||||
name = "Leech Pond"
|
||||
desc = "A strange lake reborn."
|
||||
mappath = 'maps/submaps/surface_submaps/valley/leechpond.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/walls/leppy
|
||||
name = "Leppy Den"
|
||||
desc = "A rare leppy with some rare friends."
|
||||
mappath = 'maps/submaps/surface_submaps/valley/leppy.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/mausarmy
|
||||
name = "Mouse Takeover"
|
||||
desc = "Mice trying to take over a warehouse"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/mausarmy.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/metroidmaze
|
||||
name = "Maze"
|
||||
desc = "A strange maze with several metroids"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/metroidmaze.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/inner/mouseattack
|
||||
name = "Assualt Base"
|
||||
desc = "A base with many mice ready for attack"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/mouseattack.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/mousehq
|
||||
name = "Maus HQ"
|
||||
desc = "An HQ that holds many deadly mice"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/mousehq.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/walls/phorondragon
|
||||
name = "Phoron Den"
|
||||
desc = "A den of several phoron dragons"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/phorondragon.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/piratefortress
|
||||
name = "Pirate Fort"
|
||||
desc = "A goodie and pirate filled base with a moat"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/piratefortress.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/piratevessel
|
||||
name = "Pirate Vessel"
|
||||
desc = "A vessel meant for short jaunts and raids"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/piratevessel.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/piratevpx
|
||||
name = "Vox Pirates"
|
||||
desc = "A mercanry vessel having some vox raiders attack"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/piratevox.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/plontden
|
||||
name = "Plant Den"
|
||||
desc = "A familiar looking plant set up"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/plontden.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/walls/puzzledungeon
|
||||
name = "Puzzle Dungeon"
|
||||
desc = "No threats just puzzles"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/puzzledungeon.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/inner/redshuttledown
|
||||
name = "Red Shuttle Down"
|
||||
desc = "The mercanry bringing out some of their best to scout Sif"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/Redshuttledown.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/inner/settlement
|
||||
name = "Settlement"
|
||||
desc = "An abaondened settlement."
|
||||
mappath = 'maps/submaps/surface_submaps/valley/settlement.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/siegepoint
|
||||
name = "Siege Point"
|
||||
desc = "A friendly merc base under the assualt of pirates"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/siegepoint.dmm'
|
||||
cost = 25
|
||||
|
||||
|
||||
/datum/map_template/surface/valley/walls/solarmoff
|
||||
name = "Solar Pond"
|
||||
desc = "A pond with fesh and a small sun"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/solarmoff.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/spooderchurch
|
||||
name = "Spider Church"
|
||||
desc = "Trust us, it's a cult about spiders, ignore the mercs"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/spooderchurch.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/teppifarm
|
||||
name = "Teppi Farm"
|
||||
desc = "Cute a teppi"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/teppifarm.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/walls/vault
|
||||
name = "Vault"
|
||||
desc = "The vault holds many secerts"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/vault.dmm'
|
||||
cost = 25
|
||||
|
||||
/datum/map_template/surface/valley/inner/xenobio
|
||||
name = "Xenobio Lab"
|
||||
desc = "A ruined xenobio"
|
||||
mappath = 'maps/submaps/surface_submaps/valley/xenobio.dmm'
|
||||
cost = 25
|
||||
@@ -0,0 +1,171 @@
|
||||
/area/submap/begderg
|
||||
name = "Poi Valley Wall - Rock Dragon"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/blobden
|
||||
name = "Poi Valley Wall - Blob Den"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/bloodchurch
|
||||
name = "Poi Valley - Blood Church"
|
||||
ambience = AMBIENCE_UNHOLY
|
||||
|
||||
/area/submap/carriershuttle
|
||||
name = "Poi Valley Wall - Carrier Shuttle"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/cliffmanor
|
||||
name = "Poi Valley Wall - Cliff Manor"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/clockwork
|
||||
name = "Poi Valley Wall - Clockwork"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/cove
|
||||
name = "Poi Valley Wall - Cove"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/crashedexplo
|
||||
name = "Poi Valley - Spooder Explorers"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/demonranch
|
||||
name = "Poi Valley - Demon Ranch"
|
||||
ambience = AMBIENCE_UNHOLY
|
||||
|
||||
/area/submap/dronelord
|
||||
name = "Poi Valley Wall - Drone Overlords"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
|
||||
/area/submap/eclipseaqua
|
||||
name = "Poi Valley Wall - Eclipse Aqua"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_TECH_RUINS
|
||||
|
||||
/area/submap/eclipsedigsight
|
||||
name = "Poi Valley Wall - Eclipse Dig"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_TECH_RUINS
|
||||
|
||||
/area/submap/eclipselava
|
||||
name = "Poi Valley Wall - Eclipse Lava"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_TECH_RUINS
|
||||
|
||||
/area/submap/eclipsemountain
|
||||
name = "Poi Valley Wall - Eclipse Mountain"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_TECH_RUINS
|
||||
|
||||
/area/submap/fallenlab
|
||||
name = "Poi Valley Wall - Fallen Lab"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/fallenportal
|
||||
name = "Poi Valley - Failed Portal"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
|
||||
/area/submap/hydroxeno
|
||||
name = "Poi Valley Wall - Hydro Xeno"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
|
||||
/area/submap/frostlake
|
||||
name = "Poi Valley Wall - Frost Lake"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/leechpond
|
||||
name = "Poi Valley - Leech Pond"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/leppy
|
||||
name = "Poi Valley Wall - Leppy"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/mausarmy
|
||||
name = "Poi Valley - Maus Army"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/metroidmaze
|
||||
name = "Poi Valley Walls - Maze"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
|
||||
/area/submap/mouseattack
|
||||
name = "Poi Valley Wall - Mouse Attack"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/mousehq
|
||||
name = "Poi Valley Wall - Mouse HQ"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
|
||||
/area/submap/phorondragon
|
||||
name = "Poi Valley Walls - Phoron Pack"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/piratefortress
|
||||
name = "Poi Valley - Doom Pirates"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/piratevessel
|
||||
name = "Poi Valley - Shuttle Pirates"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/piratevox
|
||||
name = "Poi Valley - Vox Raiders"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/plontden
|
||||
name = "Poi Valley Walls - Plont"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
|
||||
/area/submap/puzzledungeon
|
||||
name = "Poi Valley Walls - Puzzle Dungeon"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
|
||||
/area/submap/redshuttledown
|
||||
name = "Poi Valley - Red Shuttle"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
|
||||
/area/submap/settlement
|
||||
name = "Poi Valley Walls - Settlement"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/siegepoint
|
||||
name = "Poi Valley Walls - Siegepoint"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
|
||||
/area/submap/solarmoff
|
||||
name = "Poi Valley Walls - Solar Moth"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/spooderchurch
|
||||
name = "Poi Valley - Fake Cult"
|
||||
ambience = AMBIENCE_UNHOLY
|
||||
|
||||
/area/submap/teppifarm
|
||||
name = "Poi Valley - Teppi Farm"
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/vault
|
||||
name = "Poi Valley Walls - Vault"
|
||||
requires_power = FALSE
|
||||
ambience = AMBIENCE_RUINS
|
||||
|
||||
/area/submap/xenobio
|
||||
name = "Poi Valley - Xenobio"
|
||||
ambience = AMBIENCE_RUINS
|
||||
@@ -0,0 +1,268 @@
|
||||
//? File contains functions to generate flat /icon's from things.
|
||||
//? This is obviously expensive. Very, very expensive.
|
||||
//? new get_flat_icon is faster, but, really, don't use these unless you need to.
|
||||
//? Chances are unless you are:
|
||||
//? - sending to html/browser (for non character preview purposes)
|
||||
//? - taking photos
|
||||
//? - doing complex icon operations that can't be done with filters/overlays
|
||||
//? you probably don't need to use these.
|
||||
|
||||
/**
|
||||
* Generates an icon with all 4 directions of something.
|
||||
*
|
||||
* @params
|
||||
* - A - appearancelike object.
|
||||
* - no_anim - flatten out animations
|
||||
*/
|
||||
/proc/get_compound_icon(atom/A, no_anim)
|
||||
var/mutable_appearance/N = new
|
||||
N.appearance = A
|
||||
N.dir = NORTH
|
||||
var/icon/north = get_flat_icon(N, NORTH, no_anim = no_anim)
|
||||
N.dir = SOUTH
|
||||
var/icon/south = get_flat_icon(N, SOUTH, no_anim = no_anim)
|
||||
N.dir = EAST
|
||||
var/icon/east = get_flat_icon(N, EAST, no_anim = no_anim)
|
||||
N.dir = WEST
|
||||
var/icon/west = get_flat_icon(N, WEST, no_anim = no_anim)
|
||||
qdel(N)
|
||||
//Starts with a blank icon because of byond bugs.
|
||||
var/icon/full = icon('modular_chomp/icons/system/blank_32x32.dmi', "")
|
||||
full.Insert(north, dir = NORTH)
|
||||
full.Insert(south, dir = SOUTH)
|
||||
full.Insert(east, dir = EAST)
|
||||
full.Insert(west, dir = WEST)
|
||||
qdel(north)
|
||||
qdel(south)
|
||||
qdel(east)
|
||||
qdel(west)
|
||||
return full
|
||||
|
||||
/proc/get_flat_icon(appearance/appearancelike, dir, no_anim)
|
||||
if(!dir && isloc(appearancelike))
|
||||
dir = appearancelike.dir
|
||||
return _get_flat_icon(appearancelike, dir, no_anim, null, TRUE)
|
||||
|
||||
/proc/_get_flat_icon(image/A, defdir, no_anim, deficon, start)
|
||||
// start with blank image
|
||||
var/static/icon/template = icon('modular_chomp/icons/system/blank_32x32.dmi', "")
|
||||
|
||||
#define BLANK icon(template)
|
||||
|
||||
#define INDEX_X_LOW 1
|
||||
#define INDEX_X_HIGH 2
|
||||
#define INDEX_Y_LOW 3
|
||||
#define INDEX_Y_HIGH 4
|
||||
|
||||
#define flatX1 flat_size[INDEX_X_LOW]
|
||||
#define flatX2 flat_size[INDEX_X_HIGH]
|
||||
#define flatY1 flat_size[INDEX_Y_LOW]
|
||||
#define flatY2 flat_size[INDEX_Y_HIGH]
|
||||
#define addX1 add_size[INDEX_X_LOW]
|
||||
#define addX2 add_size[INDEX_X_HIGH]
|
||||
#define addY1 add_size[INDEX_Y_LOW]
|
||||
#define addY2 add_size[INDEX_Y_HIGH]
|
||||
|
||||
// invis? skip.
|
||||
if(!A || A.alpha <= 0)
|
||||
return BLANK
|
||||
|
||||
// detect if state exists
|
||||
var/icon/icon = A.icon || deficon
|
||||
var/state = A.icon_state
|
||||
var/none = !icon
|
||||
if(!none)
|
||||
var/list/states = icon_states(icon)
|
||||
if(!(state in states))
|
||||
if(!("" in states))
|
||||
none = TRUE
|
||||
else
|
||||
state = ""
|
||||
|
||||
// determine if there's directionals
|
||||
// propagate forced direcitons down if and only if A has a direction
|
||||
// todo: this results in a mismatch if someone is facing east but their overlays are facing south.
|
||||
var/dir
|
||||
if(start || !A.dir)
|
||||
dir = defdir
|
||||
else
|
||||
dir = A.dir
|
||||
var/ourdir = dir
|
||||
if(!none && ourdir != SOUTH)
|
||||
if(length(icon_states(icon(icon, state, NORTH))))
|
||||
else if(length(icon_states(icon(icon, state, EAST))))
|
||||
else if(length(icon_states(icon(icon, state, WEST))))
|
||||
else
|
||||
ourdir = SOUTH
|
||||
|
||||
// start generating
|
||||
if(!A.overlays.len && !A.underlays.len)
|
||||
// we don't even have ourselves!
|
||||
if(none)
|
||||
return BLANK
|
||||
// no overlays/underlays, we're done, just mix in ourselves
|
||||
var/icon/self_icon = icon(icon(icon, state, ourdir), "", SOUTH, no_anim? 1 : null)
|
||||
if(A.alpha < 255)
|
||||
self_icon.Blend(rgb(255, 255, 255, A.alpha), ICON_MULTIPLY)
|
||||
if(A.color)
|
||||
if(islist(A.color))
|
||||
self_icon.MapColors(arglist(A.color))
|
||||
else
|
||||
self_icon.Blend(A.color, ICON_MULTIPLY)
|
||||
return self_icon
|
||||
|
||||
// safety/performance check
|
||||
if((A.overlays.len + A.underlays.len) > 80)
|
||||
// we use fucking insertion check
|
||||
// > 80 = death.
|
||||
CRASH("get_flat_icon tried to process more than 80 layers")
|
||||
|
||||
// otherwise, we have to blend in all overlays/underlays.
|
||||
var/icon/flat = BLANK
|
||||
var/list/appearance/gathered = list()
|
||||
var/appearance/copying
|
||||
var/appearance/comparing
|
||||
var/i
|
||||
var/appearance/self
|
||||
var/current_layer
|
||||
|
||||
if(!none)
|
||||
// add the atom itself
|
||||
self = image(icon = icon, icon_state = state, layer = A.layer, dir = ourdir)
|
||||
self.color = A.color
|
||||
self.alpha = A.alpha
|
||||
self.blend_mode = A.blend_mode
|
||||
gathered[self] = A.layer
|
||||
|
||||
// gather
|
||||
for(copying as anything in A.overlays)
|
||||
// todo: better handling
|
||||
if(copying.plane != FLOAT_PLANE && copying.plane != A.plane)
|
||||
// we don't care probably HUD or something lol
|
||||
continue
|
||||
current_layer = copying.layer
|
||||
// if it's float layer, shove it right above atom.
|
||||
if(current_layer < 0)
|
||||
if(current_layer < -1000)
|
||||
CRASH("who the hell is using -1000 or below on float layers?")
|
||||
current_layer = A.layer + (1000 + current_layer) / 1000
|
||||
// else, add 1 so it doesn't potentially collide on float
|
||||
else
|
||||
++current_layer
|
||||
|
||||
// inject with insertion sort
|
||||
for(i in 1 to gathered.len)
|
||||
comparing = gathered[i]
|
||||
if(current_layer < gathered[comparing])
|
||||
gathered.Insert(i, copying)
|
||||
// associate
|
||||
gathered[copying] = current_layer
|
||||
|
||||
for(copying as anything in A.underlays)
|
||||
// todo: better handling
|
||||
if(copying.plane != FLOAT_PLANE && copying.plane != A.plane)
|
||||
// we don't care probably HUD or something lol
|
||||
continue
|
||||
current_layer = copying.layer
|
||||
// if it's float layer, shove it right below atom.
|
||||
if(current_layer < 0)
|
||||
if(current_layer < -1000)
|
||||
CRASH("who the hell is using -1000 or below on float layers?")
|
||||
current_layer = A.layer - (1000 + current_layer) / 1000
|
||||
// else, subtract 1 so it doesn't potentially collide on float
|
||||
else
|
||||
--current_layer
|
||||
|
||||
// inject with insertion sort
|
||||
for(i in 1 to gathered.len)
|
||||
comparing = gathered[i]
|
||||
if(current_layer < gathered[comparing])
|
||||
gathered.Insert(i, copying)
|
||||
// associate
|
||||
gathered[copying] = current_layer
|
||||
|
||||
// adding icon we're mixing in
|
||||
var/icon/adding
|
||||
// current dimensions
|
||||
var/list/flat_size = list(1, flat.Width(), 1, flat.Height())
|
||||
// adding dimensions
|
||||
var/list/add_size[4]
|
||||
// blend mode
|
||||
var/blend_mode
|
||||
|
||||
// blend in layers
|
||||
for(copying as anything in gathered)
|
||||
// if invis, skip
|
||||
if(copying.alpha == 0)
|
||||
continue
|
||||
|
||||
// detect if it's literally ourselves
|
||||
if(copying == self)
|
||||
// blend in normally (no sense doing otherwise unless we're on map)
|
||||
// we can't assume we're on map.
|
||||
blend_mode = BLEND_OVERLAY
|
||||
adding = icon(icon, state, ourdir)
|
||||
else
|
||||
// use full get_flat_icon
|
||||
blend_mode = copying.blend_mode
|
||||
adding = _get_flat_icon(copying, defdir, no_anim, icon)
|
||||
|
||||
// if we got nothing, skip
|
||||
if(!adding)
|
||||
continue
|
||||
|
||||
// detect adding size, taking into account copying overlay's pixel offsets
|
||||
add_size[INDEX_X_LOW] = min(flatX1, copying.pixel_x + 1)
|
||||
add_size[INDEX_X_HIGH] = max(flatX2, copying.pixel_x + adding.Width())
|
||||
add_size[INDEX_Y_LOW] = min(flatY1, copying.pixel_y + 1)
|
||||
add_size[INDEX_Y_HIGH] = max(flatY2, copying.pixel_y + adding.Height())
|
||||
|
||||
// resize flat to fit if necessary
|
||||
if(flat_size ~! add_size)
|
||||
flat.Crop(
|
||||
addX1 - flatX1 + 1,
|
||||
addY1 - flatY1 + 1,
|
||||
addX2 - flatX1 + 1,
|
||||
addY2 - flatY1 + 1
|
||||
)
|
||||
flat_size = add_size.Copy()
|
||||
|
||||
// blend the overlay/underlay in
|
||||
flat.Blend(adding, blendMode2iconMode(blend_mode), copying.pixel_x + 2 - flatX1, copying.pixel_y + 2 - flatY1)
|
||||
|
||||
// apply colors
|
||||
if(A.color)
|
||||
if(islist(A.color))
|
||||
flat.MapColors(arglist(A.color))
|
||||
else
|
||||
flat.Blend(A.color, ICON_MULTIPLY)
|
||||
|
||||
// apply alpha
|
||||
if(A.alpha < 255)
|
||||
flat.Blend(rgb(255, 255, 255, A.alpha), ICON_MULTIPLY)
|
||||
|
||||
// finalize
|
||||
if(no_anim)
|
||||
// clean up frames
|
||||
var/icon/cleaned = icon()
|
||||
cleaned.Insert(flat, "", SOUTH, 1, 0)
|
||||
return cleaned
|
||||
else
|
||||
// just return flat as SOUTH
|
||||
return icon(flat, "", SOUTH)
|
||||
|
||||
#undef flatX1
|
||||
#undef flatX2
|
||||
#undef flatY1
|
||||
#undef flatY2
|
||||
#undef addX1
|
||||
#undef addX2
|
||||
#undef addY1
|
||||
#undef addY2
|
||||
|
||||
#undef INDEX_X_LOW
|
||||
#undef INDEX_X_HIGH
|
||||
#undef INDEX_Y_LOW
|
||||
#undef INDEX_Y_HIGH
|
||||
|
||||
#undef BLANK
|
||||
@@ -0,0 +1,172 @@
|
||||
/**
|
||||
* Convert RBG to HSL
|
||||
*/
|
||||
/proc/rgb2hsl(red, green, blue)
|
||||
red /= 255
|
||||
green /= 255
|
||||
blue /= 255
|
||||
|
||||
var/max = max(red, green, blue)
|
||||
var/min = min(red, green, blue)
|
||||
var/range = max - min
|
||||
|
||||
var/hue = 0
|
||||
var/saturation = 0
|
||||
var/lightness = 0
|
||||
|
||||
lightness = (max + min) / 2
|
||||
if(range != 0)
|
||||
if(lightness < 0.5)
|
||||
saturation = range / (max + min)
|
||||
else
|
||||
saturation = range / (2 - max - min)
|
||||
|
||||
var/dred = ((max - red) / (6 * max)) + 0.5
|
||||
var/dgreen = ((max - green) / (6 * max)) + 0.5
|
||||
var/dblue = ((max - blue) / (6 * max)) + 0.5
|
||||
|
||||
if(max == red)
|
||||
hue = dblue - dgreen
|
||||
else if(max == green)
|
||||
hue = dred - dblue + (1 / 3)
|
||||
else
|
||||
hue = dgreen - dred + (2 / 3)
|
||||
if(hue < 0)
|
||||
hue++
|
||||
else if(hue > 1)
|
||||
hue--
|
||||
|
||||
return list(hue, saturation, lightness)
|
||||
/**
|
||||
* Convert HSL to RGB
|
||||
*/
|
||||
/proc/hsl2rgb(hue, saturation, lightness)
|
||||
var/red
|
||||
var/green
|
||||
var/blue
|
||||
|
||||
if(saturation == 0)
|
||||
red = lightness * 255
|
||||
green = red
|
||||
blue = red
|
||||
else
|
||||
var/a;var/b;
|
||||
if(lightness < 0.5)
|
||||
b = lightness * (1 + saturation)
|
||||
else
|
||||
b = (lightness + saturation) - (saturation * lightness)
|
||||
a = 2 * lightness - b
|
||||
|
||||
red = round(255 * hue2rgb(a, b, hue + (1/3)), 1)
|
||||
green = round(255 * hue2rgb(a, b, hue), 1)
|
||||
blue = round(255 * hue2rgb(a, b, hue - (1/3)), 1)
|
||||
|
||||
return list(red, green, blue)
|
||||
|
||||
/**
|
||||
* Convert hue to RGB
|
||||
*/
|
||||
/proc/hue2rgb(a, b, hue)
|
||||
if(hue < 0)
|
||||
hue++
|
||||
else if(hue > 1)
|
||||
hue--
|
||||
if(6*hue < 1)
|
||||
return (a + (b - a) * 6 * hue)
|
||||
if(2*hue < 1)
|
||||
return b
|
||||
if(3*hue < 2)
|
||||
return (a + (b - a) * ((2 / 3) - hue) * 6)
|
||||
return a
|
||||
|
||||
/**
|
||||
* Convert Kelvin to RGB
|
||||
*
|
||||
* Adapted from http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/
|
||||
*/
|
||||
/proc/heat2colour(temp)
|
||||
return rgb(
|
||||
heat2colour_r(temp),
|
||||
heat2colour_g(temp),
|
||||
heat2colour_b(temp),
|
||||
)
|
||||
|
||||
/**
|
||||
* Convert Kelvin for the Red channel
|
||||
*/
|
||||
/proc/heat2colour_r(temp)
|
||||
temp /= 100
|
||||
if(temp <= 66)
|
||||
. = 255
|
||||
else
|
||||
. = max(0, min(255, 329.698727446 * (temp - 60) ** -0.1332047592))
|
||||
|
||||
/**
|
||||
* Convert Kelvin for the Green channel
|
||||
*/
|
||||
/proc/heat2colour_g(temp)
|
||||
temp /= 100
|
||||
if(temp <= 66)
|
||||
. = max(0, min(255, 99.4708025861 * log(temp) - 161.1195681661))
|
||||
else
|
||||
. = max(0, min(255, 288.1221685293 * ((temp - 60) ** -0.075148492)))
|
||||
|
||||
/**
|
||||
* Convert Kelvin for the Blue channel
|
||||
*/
|
||||
/proc/heat2colour_b(temp)
|
||||
temp /= 100
|
||||
if(temp >= 66)
|
||||
. = 255
|
||||
else
|
||||
if(temp <= 16)
|
||||
. = 0
|
||||
else
|
||||
. = max(0, min(255, 138.5177312231 * log(temp - 10) - 305.0447927307))
|
||||
|
||||
/**
|
||||
* Assumes format #RRGGBB #rrggbb
|
||||
*/
|
||||
/proc/color_hex2num(A)
|
||||
if(!A || length(A) != length_char(A))
|
||||
return 0
|
||||
var/R = hex2num(copytext(A, 2, 4))
|
||||
var/G = hex2num(copytext(A, 4, 6))
|
||||
var/B = hex2num(copytext(A, 6, 8))
|
||||
return R+G+B
|
||||
|
||||
/**
|
||||
*! Word of warning:
|
||||
* Using a matrix like this as a color value will simplify it back to a string after being set.
|
||||
*/
|
||||
/proc/color_hex2color_matrix(string)
|
||||
var/length = length(string)
|
||||
if((length != 7 && length != 9) || length != length_char(string))
|
||||
return color_matrix_identity()
|
||||
var/r = hex2num(copytext(string, 2, 4)) / 255
|
||||
var/g = hex2num(copytext(string, 4, 6)) / 255
|
||||
var/b = hex2num(copytext(string, 6, 8)) / 255
|
||||
var/a = 1
|
||||
if(length == 9)
|
||||
a = hex2num(copytext(string, 8, 10)) / 255
|
||||
if(!isnum(r) || !isnum(g) || !isnum(b) || !isnum(a))
|
||||
return color_matrix_identity()
|
||||
return list(
|
||||
r,0,0,0,0,
|
||||
g,0,0,0,0,
|
||||
b,0,0,0,0,
|
||||
a,0,0,0,0,
|
||||
)
|
||||
|
||||
/**
|
||||
* Will drop all values not on the diagonal.
|
||||
*/
|
||||
/proc/color_matrix2color_hex(list/the_matrix)
|
||||
if(!istype(the_matrix) || the_matrix.len != 20)
|
||||
return "#ffffffff"
|
||||
return rgb(
|
||||
the_matrix[1] * 255, // R
|
||||
the_matrix[6] * 255, // G
|
||||
the_matrix[11] * 255, // B
|
||||
the_matrix[16] * 255, // A
|
||||
)
|
||||
@@ -0,0 +1,84 @@
|
||||
/datum/browser/modal/color_matrix_picker
|
||||
var/color_matrix
|
||||
|
||||
/datum/browser/modal/color_matrix_picker/New(mob/user, message, title, button1 = "Ok", button2, button3, stealfocus = TRUE, timeout = 0, list/values)
|
||||
if(!user)
|
||||
return
|
||||
if(!values)
|
||||
values = list(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)
|
||||
if(values.len < 12)
|
||||
values.len = 12
|
||||
var/list/output = list()
|
||||
output += "<form><input type='hidden' name='src' value='[REF(src)]'>"
|
||||
output += "[message]"
|
||||
#define MATRIX_FIELD(field, default) "<b><label for='[##field]'>[##field]</label></b> <input type='number' step='0.001' name='[field]' value='[default]'>"
|
||||
output += "<br><br>"
|
||||
output += MATRIX_FIELD("rr", values[1])
|
||||
output += MATRIX_FIELD("gr", values[4])
|
||||
output += MATRIX_FIELD("br", values[7])
|
||||
output += "<br><br>"
|
||||
output += MATRIX_FIELD("rg", values[2])
|
||||
output += MATRIX_FIELD("gg", values[5])
|
||||
output += MATRIX_FIELD("bg", values[8])
|
||||
output += "<br><br>"
|
||||
output += MATRIX_FIELD("rb", values[3])
|
||||
output += MATRIX_FIELD("gb", values[6])
|
||||
output += MATRIX_FIELD("bb", values[9])
|
||||
output += "<br><br>"
|
||||
output += MATRIX_FIELD("cr", values[10])
|
||||
output += MATRIX_FIELD("cg", values[11])
|
||||
output += MATRIX_FIELD("cb", values[12])
|
||||
output += "<br><br>"
|
||||
#undef MATRIX_FIELD
|
||||
|
||||
output += {"</ul><div style="text-align:center">
|
||||
<button type="submit" name="button" value="1" style="font-size:large;float:[( button2 ? "left" : "right" )]">[button1]</button>"}
|
||||
|
||||
if (button2)
|
||||
output += {"<button type="submit" name="button" value="2" style="font-size:large;[( button3 ? "" : "float:right" )]">[button2]</button>"}
|
||||
|
||||
if (button3)
|
||||
output += {"<button type="submit" name="button" value="3" style="font-size:large;float:right">[button3]</button>"}
|
||||
output += {"</form></div>"}
|
||||
|
||||
..(user, ckey("[user]-[message]-[title]-[world.time]-[rand(1,10000)]"), title, 800, 400, src, stealfocus, timeout)
|
||||
set_content(output.Join(""))
|
||||
|
||||
/datum/browser/modal/color_matrix_picker/Topic(href, list/href_list)
|
||||
if(href_list["close"] || !user)
|
||||
opentime = 0
|
||||
return
|
||||
if(href_list["button"])
|
||||
var/button = text2num(href_list["button"])
|
||||
if(ISINRANGE(button, 1, 3))
|
||||
selectedbutton = button
|
||||
var/list/cm = rgb_construct_color_matrix(
|
||||
text2num(href_list["rr"]),
|
||||
text2num(href_list["rg"]),
|
||||
text2num(href_list["rb"]),
|
||||
text2num(href_list["gr"]),
|
||||
text2num(href_list["gg"]),
|
||||
text2num(href_list["gb"]),
|
||||
text2num(href_list["br"]),
|
||||
text2num(href_list["bg"]),
|
||||
text2num(href_list["bb"]),
|
||||
text2num(href_list["cr"]),
|
||||
text2num(href_list["cg"]),
|
||||
text2num(href_list["cb"])
|
||||
)
|
||||
if(cm)
|
||||
color_matrix = cm
|
||||
opentime = 0
|
||||
close()
|
||||
|
||||
/proc/color_matrix_picker(mob/user, message, title, button1 = "Ok", button2, button3, stealfocus, timeout = 10 MINUTES, list/values)
|
||||
if(!istype(user))
|
||||
if(istype(user, /client))
|
||||
var/client/C = user
|
||||
user = C.mob
|
||||
else
|
||||
return
|
||||
var/datum/browser/modal/color_matrix_picker/B = new(user, message, title, button1, button2, button3, stealfocus, timeout, values)
|
||||
B.open()
|
||||
B.wait()
|
||||
return list("button" = B.selectedbutton, "matrix" = B.color_matrix)
|
||||
@@ -0,0 +1,143 @@
|
||||
/**
|
||||
* hey, remember mutable appearance?
|
||||
*
|
||||
* only:
|
||||
* - this isn't a real object rather than a struct
|
||||
* - i'm making a cast for it so we can VV it
|
||||
* - this is also used to cast procs that operate on appearance-like things.
|
||||
*
|
||||
* Sue me, I need to debug things somehow
|
||||
*
|
||||
* DO NOT USE THESE UNLESS YOU KNOW WHAT YOU ARE DOING.
|
||||
*/
|
||||
/appearance
|
||||
var/alpha
|
||||
var/appearance_flags
|
||||
var/blend_mode
|
||||
var/color
|
||||
var/desc
|
||||
var/dir
|
||||
var/gender
|
||||
var/icon
|
||||
var/icon_state
|
||||
var/invisibility
|
||||
var/infra_luminosity
|
||||
var/list/filters
|
||||
var/layer
|
||||
var/luminosity
|
||||
var/maptext
|
||||
var/maptext_width
|
||||
var/maptext_height
|
||||
var/maptext_x
|
||||
var/maptext_y
|
||||
var/mouse_over_pointer
|
||||
var/mouse_drag_pointer
|
||||
var/mouse_drop_pointer
|
||||
var/mouse_drop_zone
|
||||
var/mouse_opacity
|
||||
var/name
|
||||
var/opacity
|
||||
var/list/overlays
|
||||
var/override
|
||||
var/pixel_x
|
||||
var/pixel_y
|
||||
var/pixel_w
|
||||
var/pixel_z
|
||||
var/plane
|
||||
var/render_source
|
||||
var/render_target
|
||||
var/suffix
|
||||
var/text
|
||||
var/transform
|
||||
var/list/underlays
|
||||
// var/vis_flags
|
||||
|
||||
//! vis_flags missing even though byond ref says it's there, fuck off why is this possible
|
||||
|
||||
GLOBAL_REAL_VAR(_appearance_var_list) = list(
|
||||
"alpha",
|
||||
"appearance_flags",
|
||||
"blend_mode",
|
||||
"color",
|
||||
"desc",
|
||||
"dir",
|
||||
"gender",
|
||||
"icon",
|
||||
"icon_state",
|
||||
"invisibility",
|
||||
"infra_luminosity",
|
||||
"filters",
|
||||
"layer",
|
||||
"luminosity",
|
||||
"maptext",
|
||||
"maptext_width",
|
||||
"maptext_height",
|
||||
"maptext_x",
|
||||
"maptext_y",
|
||||
"mouse_over_pointer",
|
||||
"mouse_drag_pointer",
|
||||
"mouse_drop_pointer",
|
||||
"mouse_drop_zone",
|
||||
"mouse_opacity",
|
||||
"name",
|
||||
"opacity",
|
||||
"overlays",
|
||||
"override",
|
||||
"pixel_x",
|
||||
"pixel_y",
|
||||
"pixel_w",
|
||||
"pixel_z",
|
||||
"plane",
|
||||
"render_source",
|
||||
"render_target",
|
||||
"suffix",
|
||||
"text",
|
||||
"transform",
|
||||
"underlays"
|
||||
// "vis_flags"
|
||||
)
|
||||
|
||||
/proc/__appearance_v_debug(appearance/A, name)
|
||||
switch(name)
|
||||
#define DEBUG_APPEARANCE_VAR(n) if(#n) return debug_variable(name, A.n, 0, null)
|
||||
DEBUG_APPEARANCE_VAR(alpha)
|
||||
DEBUG_APPEARANCE_VAR(appearance_flags)
|
||||
DEBUG_APPEARANCE_VAR(blend_mode)
|
||||
DEBUG_APPEARANCE_VAR(color)
|
||||
DEBUG_APPEARANCE_VAR(desc)
|
||||
DEBUG_APPEARANCE_VAR(dir)
|
||||
DEBUG_APPEARANCE_VAR(gender)
|
||||
DEBUG_APPEARANCE_VAR(icon)
|
||||
DEBUG_APPEARANCE_VAR(icon_state)
|
||||
DEBUG_APPEARANCE_VAR(invisibility)
|
||||
DEBUG_APPEARANCE_VAR(infra_luminosity)
|
||||
DEBUG_APPEARANCE_VAR(filters)
|
||||
DEBUG_APPEARANCE_VAR(layer)
|
||||
DEBUG_APPEARANCE_VAR(luminosity)
|
||||
DEBUG_APPEARANCE_VAR(maptext)
|
||||
DEBUG_APPEARANCE_VAR(maptext_width)
|
||||
DEBUG_APPEARANCE_VAR(maptext_height)
|
||||
DEBUG_APPEARANCE_VAR(maptext_x)
|
||||
DEBUG_APPEARANCE_VAR(maptext_y)
|
||||
DEBUG_APPEARANCE_VAR(mouse_over_pointer)
|
||||
DEBUG_APPEARANCE_VAR(mouse_drag_pointer)
|
||||
DEBUG_APPEARANCE_VAR(mouse_drop_pointer)
|
||||
DEBUG_APPEARANCE_VAR(mouse_drop_zone)
|
||||
DEBUG_APPEARANCE_VAR(mouse_opacity)
|
||||
DEBUG_APPEARANCE_VAR(name)
|
||||
DEBUG_APPEARANCE_VAR(opacity)
|
||||
DEBUG_APPEARANCE_VAR(overlays)
|
||||
DEBUG_APPEARANCE_VAR(override)
|
||||
DEBUG_APPEARANCE_VAR(pixel_x)
|
||||
DEBUG_APPEARANCE_VAR(pixel_y)
|
||||
DEBUG_APPEARANCE_VAR(pixel_w)
|
||||
DEBUG_APPEARANCE_VAR(pixel_z)
|
||||
DEBUG_APPEARANCE_VAR(plane)
|
||||
DEBUG_APPEARANCE_VAR(render_source)
|
||||
DEBUG_APPEARANCE_VAR(render_target)
|
||||
DEBUG_APPEARANCE_VAR(suffix)
|
||||
DEBUG_APPEARANCE_VAR(text)
|
||||
DEBUG_APPEARANCE_VAR(transform)
|
||||
DEBUG_APPEARANCE_VAR(underlays)
|
||||
// DEBUG_APPEARANCE_VAR(vis_flags)
|
||||
#undef DEBUG_APPEARANCE_VAR
|
||||
@@ -0,0 +1,55 @@
|
||||
/atom
|
||||
//! Colors
|
||||
/**
|
||||
* used to store the different colors on an atom
|
||||
*
|
||||
* its inherent color, the colored paint applied on it, special color effect etc...
|
||||
*/
|
||||
var/list/atom_colours
|
||||
|
||||
//! ## Atom Colour Priority System
|
||||
/**
|
||||
* A System that gives finer control over which atom colour to colour the atom with.
|
||||
* The "highest priority" one is always displayed as opposed to the default of
|
||||
* "whichever was set last is displayed"
|
||||
*/
|
||||
|
||||
/// Adds an instance of colour_type to the atom's atom_colours list
|
||||
/atom/proc/add_atom_colour(coloration, colour_priority)
|
||||
if(!atom_colours || !atom_colours.len)
|
||||
atom_colours = list()
|
||||
atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently.
|
||||
if(!coloration)
|
||||
return
|
||||
if(colour_priority > atom_colours.len)
|
||||
return
|
||||
atom_colours[colour_priority] = coloration
|
||||
update_atom_colour()
|
||||
|
||||
/// Removes an instance of colour_type from the atom's atom_colours list
|
||||
/atom/proc/remove_atom_colour(colour_priority, coloration)
|
||||
if(!atom_colours)
|
||||
atom_colours = list()
|
||||
atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently.
|
||||
if(colour_priority > atom_colours.len)
|
||||
return
|
||||
if(coloration && atom_colours[colour_priority] != coloration)
|
||||
return //if we don't have the expected color (for a specific priority) to remove, do nothing
|
||||
atom_colours[colour_priority] = null
|
||||
update_atom_colour()
|
||||
|
||||
/// Resets the atom's color to null, and then sets it to the highest priority colour available
|
||||
/atom/proc/update_atom_colour()
|
||||
if(!atom_colours)
|
||||
atom_colours = list()
|
||||
atom_colours.len = COLOUR_PRIORITY_AMOUNT //four priority levels currently.
|
||||
color = null
|
||||
for(var/C in atom_colours)
|
||||
if(islist(C))
|
||||
var/list/L = C
|
||||
if(L.len)
|
||||
color = L
|
||||
return
|
||||
else if(C)
|
||||
color = C
|
||||
return
|
||||