mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 10:21:11 +00:00
Weather Control Device (#28604)
* Weather Control Device * defines name change * Fixes * New sprite and map tweaks
This commit is contained in:
@@ -10,6 +10,9 @@
|
|||||||
//Forecast will stay unchanged until there are less than PREDICTION_MINIMUM weathers, at which point it will make a new forecast
|
//Forecast will stay unchanged until there are less than PREDICTION_MINIMUM weathers, at which point it will make a new forecast
|
||||||
//Every forecast is freshly generated, which means forecasts change!
|
//Every forecast is freshly generated, which means forecasts change!
|
||||||
|
|
||||||
|
#define INTENSIFY 1
|
||||||
|
#define ABATE -1
|
||||||
|
|
||||||
var/list/weathertracker = list() //associative list, gathers time spent one each weather for scoreboard
|
var/list/weathertracker = list() //associative list, gathers time spent one each weather for scoreboard
|
||||||
|
|
||||||
/datum/climate
|
/datum/climate
|
||||||
@@ -38,6 +41,8 @@ var/list/weathertracker = list() //associative list, gathers time spent one each
|
|||||||
else
|
else
|
||||||
var/datum/weather/future = new path(src)
|
var/datum/weather/future = new path(src)
|
||||||
forecasts += future
|
forecasts += future
|
||||||
|
if(W.next_weather.len == 1)
|
||||||
|
break //Forecast no further.
|
||||||
cycle++
|
cycle++
|
||||||
forecasts -= current_weather //remove it from our future weather
|
forecasts -= current_weather //remove it from our future weather
|
||||||
|
|
||||||
@@ -57,6 +62,29 @@ var/list/weathertracker = list() //associative list, gathers time spent one each
|
|||||||
if(forecasts.len < PREDICTION_MINIMUM)
|
if(forecasts.len < PREDICTION_MINIMUM)
|
||||||
forecast()
|
forecast()
|
||||||
|
|
||||||
|
#define INVALID_STEP -1
|
||||||
|
#define CANNOT_CHANGE -2
|
||||||
|
//step -1 to go down a step, 1 to go up a step
|
||||||
|
/datum/climate/proc/weather_shift(var/direction = INTENSIFY)
|
||||||
|
if(direction**2 != 1)
|
||||||
|
return INVALID_STEP //must be 1 or -1
|
||||||
|
if(current_weather)
|
||||||
|
var/weathers = current_weather.next_weather.len
|
||||||
|
if(weathers == 1)
|
||||||
|
return CANNOT_CHANGE
|
||||||
|
var/preferred_weather
|
||||||
|
if(direction == INTENSIFY)
|
||||||
|
preferred_weather = current_weather.next_weather[weathers] //the last value
|
||||||
|
else if(direction == ABATE)
|
||||||
|
preferred_weather = current_weather.next_weather[1] //the first value
|
||||||
|
if(preferred_weather == current_weather.type)
|
||||||
|
return FALSE
|
||||||
|
current_weather.timeleft = min(1 MINUTES, current_weather.timeleft)
|
||||||
|
current_weather.next_weather.Cut()
|
||||||
|
current_weather.next_weather[preferred_weather] = 100
|
||||||
|
forecast()
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/datum/climate/proc/change_weather(weather)
|
/datum/climate/proc/change_weather(weather)
|
||||||
if(ispath(weather))
|
if(ispath(weather))
|
||||||
//We have been provided a path. Let's see if it's identical to the one we have.
|
//We have been provided a path. Let's see if it's identical to the one we have.
|
||||||
@@ -89,6 +117,8 @@ var/list/weathertracker = list() //associative list, gathers time spent one each
|
|||||||
/datum/weather
|
/datum/weather
|
||||||
var/name = "weather"
|
var/name = "weather"
|
||||||
var/list/next_weather = list() //associative list
|
var/list/next_weather = list() //associative list
|
||||||
|
//for next_weather, order matters: put in order of weather intensity, so that step() will work
|
||||||
|
//only one in list means it can't be changed by the weather control device
|
||||||
var/timeleft = 1
|
var/timeleft = 1
|
||||||
var/datum/climate/parent
|
var/datum/climate/parent
|
||||||
var/temperature = T20C
|
var/temperature = T20C
|
||||||
|
|||||||
@@ -1496,3 +1496,15 @@ obj/item/weapon/circuitboard/rdserver
|
|||||||
/obj/item/weapon/stock_parts/manipulator = 1,
|
/obj/item/weapon/stock_parts/manipulator = 1,
|
||||||
/obj/item/weapon/stock_parts/capacitor = 1,
|
/obj/item/weapon/stock_parts/capacitor = 1,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/obj/item/weapon/circuitboard/weathercontrol
|
||||||
|
name = "Circuit Board (Weather Control Device)"
|
||||||
|
desc = "A circuit board used to operate a weather control device."
|
||||||
|
build_path = /obj/machinery/weathercontrol
|
||||||
|
board_type = MACHINE
|
||||||
|
origin_tech = Tc_PROGRAMMING + "=4"
|
||||||
|
req_components = list(
|
||||||
|
/obj/item/weapon/stock_parts/matter_bin/adv/super/bluespace = 1,
|
||||||
|
/obj/item/weapon/stock_parts/micro_laser/high/ultra = 2,
|
||||||
|
/obj/item/weapon/cell/rad = 1,
|
||||||
|
)
|
||||||
184
code/game/machinery/weathercontrol.dm
Normal file
184
code/game/machinery/weathercontrol.dm
Normal file
@@ -0,0 +1,184 @@
|
|||||||
|
/obj/machinery/weathercontrol
|
||||||
|
name = "weather control device"
|
||||||
|
desc = "A device which uses weather control techniques such as cloud seeding to manipulate atmospheric conditions. It runs on bluespace crystals."
|
||||||
|
icon = 'icons/obj/stationobjs_32x64.dmi'
|
||||||
|
icon_state = "wcd0"
|
||||||
|
use_power = 1
|
||||||
|
density = 1
|
||||||
|
anchored = 1
|
||||||
|
machine_flags = SCREWTOGGLE | CROWDESTROY | WRENCHMOVE | FIXED2WORK
|
||||||
|
req_access = list(access_rnd)
|
||||||
|
idle_power_usage = 100
|
||||||
|
var/error_message = null
|
||||||
|
var/efficiency_modifier = 0 //Subtract from crystal costs
|
||||||
|
var/crystal_reserve = 0 //Powered by bluespace crystals, this represents how much.
|
||||||
|
|
||||||
|
/obj/machinery/weathercontrol/New()
|
||||||
|
. = ..()
|
||||||
|
component_parts = newlist(
|
||||||
|
/obj/item/weapon/circuitboard/weathercontrol,
|
||||||
|
/obj/item/weapon/cell/rad,
|
||||||
|
/obj/item/weapon/stock_parts/matter_bin/adv/super/bluespace,
|
||||||
|
/obj/item/weapon/stock_parts/micro_laser/high/ultra,
|
||||||
|
/obj/item/weapon/stock_parts/micro_laser/high/ultra)
|
||||||
|
RefreshParts()
|
||||||
|
|
||||||
|
/obj/machinery/weathercontrol/Destroy()
|
||||||
|
if(crystal_reserve >= 300)
|
||||||
|
new /obj/item/bluespace_crystal/flawless(loc)
|
||||||
|
else
|
||||||
|
while(crystal_reserve >= 3)
|
||||||
|
new /obj/item/bluespace_crystal(loc)
|
||||||
|
crystal_reserve -= 3
|
||||||
|
while(crystal_reserve > 0)
|
||||||
|
new /obj/item/bluespace_crystal/artificial(loc)
|
||||||
|
crystal_reserve--
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/machinery/weathercontrol/RefreshParts()
|
||||||
|
var/T = 0
|
||||||
|
for(var/obj/item/weapon/stock_parts/micro_laser/ML in component_parts)
|
||||||
|
T += ML.rating
|
||||||
|
efficiency_modifier = (T/2)-3
|
||||||
|
//Both tier 3: 0; one tier 4: 0.5, both tier 4: 1
|
||||||
|
|
||||||
|
/obj/machinery/weathercontrol/update_icon()
|
||||||
|
icon_state = "wcd[crystal_reserve > 0]"
|
||||||
|
|
||||||
|
/obj/machinery/weathercontrol/attack_hand(mob/user)
|
||||||
|
return ui_interact(user)
|
||||||
|
|
||||||
|
/obj/machinery/weathercontrol/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open=NANOUI_FOCUS)
|
||||||
|
if (gcDestroyed || !get_turf(src) || !anchored)
|
||||||
|
if(!ui)
|
||||||
|
ui = nanomanager.get_open_ui(user, src, ui_key)
|
||||||
|
if(ui)
|
||||||
|
ui.close()
|
||||||
|
return
|
||||||
|
|
||||||
|
var/data[0]
|
||||||
|
data["error"] = error_message
|
||||||
|
|
||||||
|
if(map.climate)
|
||||||
|
var/datum/climate/C = map.climate
|
||||||
|
var/datum/weather/CW = C.current_weather
|
||||||
|
var/forecast_dat
|
||||||
|
for(var/datum/weather/W in C.forecasts)
|
||||||
|
forecast_dat += "[W.name] "
|
||||||
|
data["name"] = name
|
||||||
|
data["currentweather"] = CW
|
||||||
|
data["remaining_time"] = formatTimeDuration(CW.timeleft)
|
||||||
|
data["forecast"] = forecast_dat
|
||||||
|
data["crystals"] = crystal_reserve
|
||||||
|
else
|
||||||
|
data["error"] = "Error: No climate detected."
|
||||||
|
|
||||||
|
// update the ui if it exists, returns null if no ui is passed/found
|
||||||
|
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
|
||||||
|
if (!ui)
|
||||||
|
ui = new(user, src, ui_key, "weathercontrol.tmpl", "Weather Control Device", 380, 250)
|
||||||
|
ui.set_initial_data(data)
|
||||||
|
ui.open()
|
||||||
|
|
||||||
|
#define DISRUPT_COST 1
|
||||||
|
#define INTENSIFY_COST 1
|
||||||
|
#define ABATE_COST 2
|
||||||
|
|
||||||
|
#define SUCCESS 1
|
||||||
|
#define NOFIRE 2
|
||||||
|
#define NEED_CRYSTALS -3
|
||||||
|
#define POWER_ERROR -4
|
||||||
|
/obj/machinery/weathercontrol/Topic(href, href_list)
|
||||||
|
if(..())
|
||||||
|
return
|
||||||
|
if(usr.incapacitated() || (!Adjacent(usr)&&!isAdminGhost(usr)) || !usr.dexterity_check() || !map.climate)
|
||||||
|
return
|
||||||
|
if(!allowed(usr) && !emagged)
|
||||||
|
to_chat(usr,"<span class='warning'>Access denied.</span>")
|
||||||
|
return
|
||||||
|
if(stat & NOPOWER)
|
||||||
|
return
|
||||||
|
var/datum/climate/C = map.climate
|
||||||
|
var/datum/weather/CW = C.current_weather
|
||||||
|
|
||||||
|
var/feedback = NOFIRE
|
||||||
|
var/usedcost = 0
|
||||||
|
|
||||||
|
if(stat & NOPOWER)
|
||||||
|
feedback = POWER_ERROR
|
||||||
|
else
|
||||||
|
if(href_list["disrupt"])
|
||||||
|
feedback = SUCCESS
|
||||||
|
usedcost = DISRUPT_COST
|
||||||
|
if(!burn_crystals(DISRUPT_COST))
|
||||||
|
feedback = NEED_CRYSTALS
|
||||||
|
else
|
||||||
|
if(C.current_weather.next_weather.len < 2)
|
||||||
|
feedback = CANNOT_CHANGE
|
||||||
|
else
|
||||||
|
CW.timeleft = min(1 MINUTES, CW.timeleft)
|
||||||
|
C.forecast()
|
||||||
|
if(href_list["intensify"])
|
||||||
|
feedback = SUCCESS
|
||||||
|
usedcost = INTENSIFY_COST
|
||||||
|
if(!burn_crystals(INTENSIFY_COST))
|
||||||
|
feedback = NEED_CRYSTALS
|
||||||
|
else
|
||||||
|
feedback = C.weather_shift(INTENSIFY)
|
||||||
|
if(href_list["abate"])
|
||||||
|
feedback = SUCCESS
|
||||||
|
usedcost = ABATE_COST
|
||||||
|
if(!burn_crystals(ABATE_COST))
|
||||||
|
feedback = NEED_CRYSTALS
|
||||||
|
else
|
||||||
|
feedback = C.weather_shift(ABATE)
|
||||||
|
|
||||||
|
var/soundpath = 'sound/machines/warning-buzzer.ogg'
|
||||||
|
switch(feedback)
|
||||||
|
if(POWER_ERROR)
|
||||||
|
error_message = "Error: Unpowered."
|
||||||
|
if(NEED_CRYSTALS)
|
||||||
|
error_message = "Error: Refraction index low. Load new bluespace crystals."
|
||||||
|
if(CANNOT_CHANGE)
|
||||||
|
error_message = "Error: Cannot change weather."
|
||||||
|
refund(usedcost)
|
||||||
|
if(INVALID_STEP)
|
||||||
|
error_message = "Error: Machine malfunction."
|
||||||
|
refund(usedcost)
|
||||||
|
if(FALSE)
|
||||||
|
error_message = "Error: Weather already present."
|
||||||
|
refund(usedcost)
|
||||||
|
if(SUCCESS)
|
||||||
|
error_message = "Success: Atmoforming climate."
|
||||||
|
soundpath = 'sound/machines/hiss.ogg'
|
||||||
|
if(NOFIRE)
|
||||||
|
return
|
||||||
|
playsound(src, soundpath, vol = 50, vary = FALSE)
|
||||||
|
nanomanager.update_uis(src)
|
||||||
|
update_icon()
|
||||||
|
spawn(4 SECONDS)
|
||||||
|
error_message = null
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/machinery/weathercontrol/proc/burn_crystals(var/cost)
|
||||||
|
var/tcost = cost - efficiency_modifier
|
||||||
|
if(tcost>crystal_reserve)
|
||||||
|
return FALSE
|
||||||
|
crystal_reserve = max(0, crystal_reserve - tcost)
|
||||||
|
return TRUE
|
||||||
|
|
||||||
|
/obj/machinery/weathercontrol/proc/refund(var/num)
|
||||||
|
var/tnum = num - efficiency_modifier
|
||||||
|
crystal_reserve += tnum
|
||||||
|
|
||||||
|
/obj/machinery/weathercontrol/attackby(var/obj/item/I, var/mob/user)
|
||||||
|
..()
|
||||||
|
if(istype(I, /obj/item/bluespace_crystal))
|
||||||
|
var/obj/item/bluespace_crystal/B = I
|
||||||
|
if(user.drop_item(B, src))
|
||||||
|
crystal_reserve += B.blueChargeValue
|
||||||
|
B.playtoolsound(src, 50)
|
||||||
|
to_chat(user, "<span class='notice'>You insert \the [B] into \the [src].")
|
||||||
|
nanomanager.update_uis(src)
|
||||||
|
qdel(B)
|
||||||
|
update_icon()
|
||||||
@@ -112,3 +112,13 @@
|
|||||||
materials = list(MAT_GLASS = 2000, SACID = 20)
|
materials = list(MAT_GLASS = 2000, SACID = 20)
|
||||||
category = "Console Boards"
|
category = "Console Boards"
|
||||||
build_path = /obj/item/weapon/circuitboard/suspension_gen
|
build_path = /obj/item/weapon/circuitboard/suspension_gen
|
||||||
|
|
||||||
|
/datum/design/weathercontroldevice
|
||||||
|
name = "Circuit Design (Weather Control Device)"
|
||||||
|
desc = "The circuitboard for a weather control device."
|
||||||
|
id = "weathercontrol"
|
||||||
|
req_tech = list(Tc_PROGRAMMING = 4)
|
||||||
|
build_type = IMPRINTER
|
||||||
|
materials = list(MAT_GLASS = 2000, SACID = 20)
|
||||||
|
category = "Console Boards"
|
||||||
|
build_path = /obj/item/weapon/circuitboard/weathercontrol
|
||||||
BIN
icons/obj/stationobjs_32x64.dmi
Normal file
BIN
icons/obj/stationobjs_32x64.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
530
maps/snaxi.dmm
530
maps/snaxi.dmm
@@ -23260,6 +23260,7 @@
|
|||||||
icon_state = "1-2";
|
icon_state = "1-2";
|
||||||
tag = ""
|
tag = ""
|
||||||
},
|
},
|
||||||
|
/obj/machinery/holosign/morgue,
|
||||||
/turf/simulated/floor{
|
/turf/simulated/floor{
|
||||||
icon_state = "dark"
|
icon_state = "dark"
|
||||||
},
|
},
|
||||||
@@ -36520,13 +36521,17 @@
|
|||||||
},
|
},
|
||||||
/area/science/server)
|
/area/science/server)
|
||||||
"boN" = (
|
"boN" = (
|
||||||
|
/obj/machinery/light{
|
||||||
|
dir = 8
|
||||||
|
},
|
||||||
/turf/simulated/floor{
|
/turf/simulated/floor{
|
||||||
icon_state = "warnwhitecorner"
|
icon_state = "white"
|
||||||
},
|
},
|
||||||
/area/science/lab)
|
/area/science/lab)
|
||||||
"boO" = (
|
"boO" = (
|
||||||
/turf/simulated/floor{
|
/turf/simulated/floor{
|
||||||
icon_state = "warnwhite"
|
dir = 1;
|
||||||
|
icon_state = "rampbottom"
|
||||||
},
|
},
|
||||||
/area/science/lab)
|
/area/science/lab)
|
||||||
"boP" = (
|
"boP" = (
|
||||||
@@ -37036,46 +37041,18 @@
|
|||||||
},
|
},
|
||||||
/area/science/server)
|
/area/science/server)
|
||||||
"bpM" = (
|
"bpM" = (
|
||||||
/obj/structure/table,
|
|
||||||
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
|
||||||
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
|
||||||
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
|
||||||
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
|
||||||
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
|
||||||
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
|
||||||
/obj/machinery/firealarm{
|
/obj/machinery/firealarm{
|
||||||
dir = 8;
|
dir = 8;
|
||||||
pixel_x = -24
|
pixel_x = -24
|
||||||
},
|
},
|
||||||
/turf/simulated/floor{
|
/turf/simulated/floor{
|
||||||
dir = 6;
|
icon_state = "warnwhitecorner"
|
||||||
icon_state = "warnwhite"
|
|
||||||
},
|
},
|
||||||
/area/science/lab)
|
/area/science/lab)
|
||||||
"bpN" = (
|
|
||||||
/obj/machinery/r_n_d/destructive_analyzer,
|
|
||||||
/turf/simulated/floor/bluegrid,
|
|
||||||
/area/science/lab)
|
|
||||||
"bpO" = (
|
|
||||||
/obj/machinery/constructable_frame/machine_frame,
|
|
||||||
/obj/machinery/media/receiver/boombox/wallmount/muzak{
|
|
||||||
pixel_y = -24
|
|
||||||
},
|
|
||||||
/turf/simulated/floor/bluegrid,
|
|
||||||
/area/science/lab)
|
|
||||||
"bpP" = (
|
|
||||||
/obj/machinery/computer/rdconsole/core,
|
|
||||||
/obj/machinery/light,
|
|
||||||
/turf/simulated/floor/bluegrid,
|
|
||||||
/area/science/lab)
|
|
||||||
"bpQ" = (
|
|
||||||
/obj/machinery/r_n_d/fabricator/protolathe,
|
|
||||||
/turf/simulated/floor/bluegrid,
|
|
||||||
/area/science/lab)
|
|
||||||
"bpR" = (
|
"bpR" = (
|
||||||
/obj/machinery/r_n_d/fabricator/circuit_imprinter,
|
/turf/simulated/floor{
|
||||||
/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,
|
icon_state = "warnwhite"
|
||||||
/turf/simulated/floor/bluegrid,
|
},
|
||||||
/area/science/lab)
|
/area/science/lab)
|
||||||
"bpS" = (
|
"bpS" = (
|
||||||
/obj/item/clothing/glasses/simonglasses,
|
/obj/item/clothing/glasses/simonglasses,
|
||||||
@@ -37423,36 +37400,30 @@
|
|||||||
/area/science/server)
|
/area/science/server)
|
||||||
"bqx" = (
|
"bqx" = (
|
||||||
/obj/structure/window/reinforced{
|
/obj/structure/window/reinforced{
|
||||||
dir = 8
|
icon = 'icons/obj/objects.dmi';
|
||||||
|
icon_state = "rail";
|
||||||
|
name = "safety rail"
|
||||||
},
|
},
|
||||||
/obj/structure/window/reinforced{
|
/obj/machinery/r_n_d/destructive_analyzer,
|
||||||
dir = 1
|
/turf/simulated/floor/bluegrid,
|
||||||
},
|
|
||||||
/obj/structure/grille,
|
|
||||||
/obj/structure/window/reinforced,
|
|
||||||
/obj/structure/window/full/reinforced,
|
|
||||||
/turf/simulated/floor/plating,
|
|
||||||
/area/science/lab)
|
/area/science/lab)
|
||||||
"bqy" = (
|
"bqy" = (
|
||||||
/obj/structure/window/reinforced{
|
/obj/structure/window/reinforced{
|
||||||
dir = 1
|
icon = 'icons/obj/objects.dmi';
|
||||||
|
icon_state = "rail";
|
||||||
|
name = "safety rail"
|
||||||
},
|
},
|
||||||
/obj/structure/grille,
|
/obj/machinery/r_n_d/fabricator/protolathe,
|
||||||
/obj/structure/window/reinforced,
|
/turf/simulated/floor/bluegrid,
|
||||||
/obj/structure/window/full/reinforced,
|
|
||||||
/turf/simulated/floor/plating,
|
|
||||||
/area/science/lab)
|
/area/science/lab)
|
||||||
"bqz" = (
|
"bqz" = (
|
||||||
/obj/structure/window/reinforced{
|
/obj/structure/window/reinforced{
|
||||||
dir = 1
|
icon = 'icons/obj/objects.dmi';
|
||||||
|
icon_state = "rail";
|
||||||
|
name = "safety rail"
|
||||||
},
|
},
|
||||||
/obj/structure/window/reinforced{
|
/obj/machinery/r_n_d/fabricator/circuit_imprinter,
|
||||||
dir = 4
|
/turf/simulated/floor/bluegrid,
|
||||||
},
|
|
||||||
/obj/structure/grille,
|
|
||||||
/obj/structure/window/reinforced,
|
|
||||||
/obj/structure/window/full/reinforced,
|
|
||||||
/turf/simulated/floor/plating,
|
|
||||||
/area/science/lab)
|
/area/science/lab)
|
||||||
"bqA" = (
|
"bqA" = (
|
||||||
/obj/structure/bed/chair{
|
/obj/structure/bed/chair{
|
||||||
@@ -44596,6 +44567,7 @@
|
|||||||
tag = ""
|
tag = ""
|
||||||
},
|
},
|
||||||
/obj/machinery/door_timer/cell_1{
|
/obj/machinery/door_timer/cell_1{
|
||||||
|
dir = 1;
|
||||||
pixel_y = 32
|
pixel_y = 32
|
||||||
},
|
},
|
||||||
/turf/simulated/floor{
|
/turf/simulated/floor{
|
||||||
@@ -100582,6 +100554,12 @@
|
|||||||
/area/bridge/meeting_room{
|
/area/bridge/meeting_room{
|
||||||
name = "\improper Security Station Bridge"
|
name = "\improper Security Station Bridge"
|
||||||
})
|
})
|
||||||
|
"dTR" = (
|
||||||
|
/turf/simulated/floor{
|
||||||
|
dir = 8;
|
||||||
|
icon_state = "rampbottom"
|
||||||
|
},
|
||||||
|
/area/science/lab)
|
||||||
"dWH" = (
|
"dWH" = (
|
||||||
/obj/structure/disposalpipe/segment,
|
/obj/structure/disposalpipe/segment,
|
||||||
/obj/machinery/door/firedoor/border_only{
|
/obj/machinery/door/firedoor/border_only{
|
||||||
@@ -100706,6 +100684,16 @@
|
|||||||
icon_state = "freezerfloor"
|
icon_state = "freezerfloor"
|
||||||
},
|
},
|
||||||
/area/security/perma)
|
/area/security/perma)
|
||||||
|
"eVS" = (
|
||||||
|
/obj/structure/fence{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
icon_state = "warning";
|
||||||
|
tag = "icon-warning"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"eYF" = (
|
"eYF" = (
|
||||||
/obj/machinery/computer/climate/wall{
|
/obj/machinery/computer/climate/wall{
|
||||||
pixel_x = -30
|
pixel_x = -30
|
||||||
@@ -100904,6 +100892,13 @@
|
|||||||
/area/maintenance/fsmaint2{
|
/area/maintenance/fsmaint2{
|
||||||
name = "Auxiliary Docking"
|
name = "Auxiliary Docking"
|
||||||
})
|
})
|
||||||
|
"haA" = (
|
||||||
|
/obj/machinery/door/airlock/external{
|
||||||
|
name = "Weather Control Access";
|
||||||
|
req_one_access_txt = "7; 29"
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/plating,
|
||||||
|
/area/science/lab)
|
||||||
"hiu" = (
|
"hiu" = (
|
||||||
/turf/simulated/floor{
|
/turf/simulated/floor{
|
||||||
dir = 1;
|
dir = 1;
|
||||||
@@ -100911,6 +100906,14 @@
|
|||||||
tag = "icon-darkblue (NORTH)"
|
tag = "icon-darkblue (NORTH)"
|
||||||
},
|
},
|
||||||
/area/security/perma)
|
/area/security/perma)
|
||||||
|
"hlM" = (
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
dir = 8;
|
||||||
|
icon_state = "warning_corner";
|
||||||
|
tag = "icon-warning_corner (WEST)"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"hrm" = (
|
"hrm" = (
|
||||||
/obj/structure/cable{
|
/obj/structure/cable{
|
||||||
d1 = 1;
|
d1 = 1;
|
||||||
@@ -100928,6 +100931,13 @@
|
|||||||
/area/maintenance/fsmaint2{
|
/area/maintenance/fsmaint2{
|
||||||
name = "Auxiliary Docking"
|
name = "Auxiliary Docking"
|
||||||
})
|
})
|
||||||
|
"hta" = (
|
||||||
|
/obj/effect/decal/cleanable/blood/oil{
|
||||||
|
dir = 4;
|
||||||
|
icon_state = "floor6"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"hxZ" = (
|
"hxZ" = (
|
||||||
/obj/machinery/light,
|
/obj/machinery/light,
|
||||||
/obj/machinery/media/receiver/boombox/wallmount/muzak{
|
/obj/machinery/media/receiver/boombox/wallmount/muzak{
|
||||||
@@ -101058,6 +101068,18 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/carpet,
|
/turf/simulated/floor/carpet,
|
||||||
/area/security/hos)
|
/area/security/hos)
|
||||||
|
"ila" = (
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/obj/structure/grille,
|
||||||
|
/obj/structure/window/reinforced,
|
||||||
|
/obj/structure/window/full/reinforced,
|
||||||
|
/turf/simulated/floor/plating,
|
||||||
|
/area/science/lab)
|
||||||
"ioN" = (
|
"ioN" = (
|
||||||
/obj/machinery/door/airlock/external{
|
/obj/machinery/door/airlock/external{
|
||||||
req_access_txt = "13;24"
|
req_access_txt = "13;24"
|
||||||
@@ -101152,6 +101174,10 @@
|
|||||||
/area/engine/locker{
|
/area/engine/locker{
|
||||||
name = "\improper Engineering Foyer"
|
name = "\improper Engineering Foyer"
|
||||||
})
|
})
|
||||||
|
"iZe" = (
|
||||||
|
/obj/item/weapon/storage/toolbox/mechanical,
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"jcq" = (
|
"jcq" = (
|
||||||
/obj/machinery/disposal,
|
/obj/machinery/disposal,
|
||||||
/obj/structure/disposalpipe/trunk{
|
/obj/structure/disposalpipe/trunk{
|
||||||
@@ -101175,12 +101201,31 @@
|
|||||||
icon_state = "dark"
|
icon_state = "dark"
|
||||||
},
|
},
|
||||||
/area/security/brig)
|
/area/security/brig)
|
||||||
|
"jtQ" = (
|
||||||
|
/obj/structure/fence{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
icon_state = "warning";
|
||||||
|
tag = "icon-warning"
|
||||||
|
},
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
icon_state = "sci"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"juJ" = (
|
"juJ" = (
|
||||||
/obj/machinery/computer/climate/wall{
|
/obj/machinery/computer/climate/wall{
|
||||||
pixel_y = -30
|
pixel_y = -30
|
||||||
},
|
},
|
||||||
/turf/simulated/floor/plating,
|
/turf/simulated/floor/plating,
|
||||||
/area/supply/miningdelivery)
|
/area/supply/miningdelivery)
|
||||||
|
"jCa" = (
|
||||||
|
/turf/simulated/floor{
|
||||||
|
dir = 8;
|
||||||
|
icon_state = "neutralfull"
|
||||||
|
},
|
||||||
|
/area/science/lab)
|
||||||
"jCX" = (
|
"jCX" = (
|
||||||
/obj/machinery/door/airlock/vault{
|
/obj/machinery/door/airlock/vault{
|
||||||
name = "The Hole";
|
name = "The Hole";
|
||||||
@@ -101200,6 +101245,12 @@
|
|||||||
icon_state = "dark vault stripe"
|
icon_state = "dark vault stripe"
|
||||||
},
|
},
|
||||||
/area/security/perma)
|
/area/security/perma)
|
||||||
|
"jNt" = (
|
||||||
|
/obj/machinery/light,
|
||||||
|
/turf/simulated/floor{
|
||||||
|
icon_state = "purple"
|
||||||
|
},
|
||||||
|
/area/science/lab)
|
||||||
"jTM" = (
|
"jTM" = (
|
||||||
/obj/machinery/door_control{
|
/obj/machinery/door_control{
|
||||||
desc = "A remote control-switch for a door to space.";
|
desc = "A remote control-switch for a door to space.";
|
||||||
@@ -101301,6 +101352,9 @@
|
|||||||
icon_state = "dark"
|
icon_state = "dark"
|
||||||
},
|
},
|
||||||
/area/security/brig)
|
/area/security/brig)
|
||||||
|
"kHu" = (
|
||||||
|
/turf/simulated/floor,
|
||||||
|
/area/science/lab)
|
||||||
"kJd" = (
|
"kJd" = (
|
||||||
/obj/structure/window/reinforced{
|
/obj/structure/window/reinforced{
|
||||||
dir = 8
|
dir = 8
|
||||||
@@ -101586,6 +101640,15 @@
|
|||||||
},
|
},
|
||||||
/turf/unsimulated/floor/snow,
|
/turf/unsimulated/floor/snow,
|
||||||
/area/surface/forest/south)
|
/area/surface/forest/south)
|
||||||
|
"mmF" = (
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
icon = 'icons/obj/objects.dmi';
|
||||||
|
icon_state = "rail";
|
||||||
|
name = "safety rail"
|
||||||
|
},
|
||||||
|
/obj/machinery/computer/rdconsole/core,
|
||||||
|
/turf/simulated/floor/bluegrid,
|
||||||
|
/area/science/lab)
|
||||||
"mwy" = (
|
"mwy" = (
|
||||||
/obj/machinery/atmospherics/unary/vent_scrubber/on{
|
/obj/machinery/atmospherics/unary/vent_scrubber/on{
|
||||||
dir = 8;
|
dir = 8;
|
||||||
@@ -101639,6 +101702,21 @@
|
|||||||
icon_state = "dark"
|
icon_state = "dark"
|
||||||
},
|
},
|
||||||
/area/security/perma)
|
/area/security/perma)
|
||||||
|
"naM" = (
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
dir = 8;
|
||||||
|
icon = 'icons/obj/objects.dmi';
|
||||||
|
icon_state = "rail";
|
||||||
|
name = "safety rail"
|
||||||
|
},
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
icon = 'icons/obj/objects.dmi';
|
||||||
|
icon_state = "rail";
|
||||||
|
name = "safety rail"
|
||||||
|
},
|
||||||
|
/obj/machinery/constructable_frame/machine_frame,
|
||||||
|
/turf/simulated/floor/bluegrid,
|
||||||
|
/area/science/lab)
|
||||||
"ndg" = (
|
"ndg" = (
|
||||||
/obj/structure/closet/wardrobe/pjs,
|
/obj/structure/closet/wardrobe/pjs,
|
||||||
/obj/item/stack/sheet/wood{
|
/obj/item/stack/sheet/wood{
|
||||||
@@ -101674,6 +101752,11 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/plating,
|
/turf/simulated/floor/plating,
|
||||||
/area/engineering/atmos)
|
/area/engineering/atmos)
|
||||||
|
"noa" = (
|
||||||
|
/turf/simulated/floor{
|
||||||
|
icon_state = "purple"
|
||||||
|
},
|
||||||
|
/area/science/lab)
|
||||||
"nop" = (
|
"nop" = (
|
||||||
/obj/item/device/flashlight/lamp,
|
/obj/item/device/flashlight/lamp,
|
||||||
/obj/structure/table/woodentable,
|
/obj/structure/table/woodentable,
|
||||||
@@ -101681,6 +101764,17 @@
|
|||||||
/area/security/toilet{
|
/area/security/toilet{
|
||||||
name = "Brig Dormitories"
|
name = "Brig Dormitories"
|
||||||
})
|
})
|
||||||
|
"ntc" = (
|
||||||
|
/obj/machinery/constructable_frame/machine_frame{
|
||||||
|
build_state = 2;
|
||||||
|
icon_state = "box_1"
|
||||||
|
},
|
||||||
|
/obj/item/weapon/circuitboard/weathercontrol,
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
icon_state = "bot"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"nzq" = (
|
"nzq" = (
|
||||||
/obj/structure/grille,
|
/obj/structure/grille,
|
||||||
/obj/structure/window/reinforced,
|
/obj/structure/window/reinforced,
|
||||||
@@ -101719,6 +101813,18 @@
|
|||||||
icon_state = "dark"
|
icon_state = "dark"
|
||||||
},
|
},
|
||||||
/area/security/perma)
|
/area/security/perma)
|
||||||
|
"nJG" = (
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
dir = 8;
|
||||||
|
icon_state = "warning";
|
||||||
|
tag = "icon-warning (WEST)"
|
||||||
|
},
|
||||||
|
/obj/structure/fence,
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
|
"nJR" = (
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"nZp" = (
|
"nZp" = (
|
||||||
/obj/structure/cable{
|
/obj/structure/cable{
|
||||||
d1 = 1;
|
d1 = 1;
|
||||||
@@ -101890,6 +101996,18 @@
|
|||||||
/area/maintenance/fsmaint2{
|
/area/maintenance/fsmaint2{
|
||||||
name = "Auxiliary Docking"
|
name = "Auxiliary Docking"
|
||||||
})
|
})
|
||||||
|
"pcf" = (
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
dir = 8
|
||||||
|
},
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/obj/structure/grille,
|
||||||
|
/obj/structure/window/reinforced,
|
||||||
|
/obj/structure/window/full/reinforced,
|
||||||
|
/turf/simulated/floor/plating,
|
||||||
|
/area/science/lab)
|
||||||
"pqb" = (
|
"pqb" = (
|
||||||
/obj/structure/cable{
|
/obj/structure/cable{
|
||||||
d1 = 1;
|
d1 = 1;
|
||||||
@@ -102033,6 +102151,13 @@
|
|||||||
icon_state = "dark"
|
icon_state = "dark"
|
||||||
},
|
},
|
||||||
/area/security/brig)
|
/area/security/brig)
|
||||||
|
"qwz" = (
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
icon_state = "warning";
|
||||||
|
tag = "icon-warning"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"qxT" = (
|
"qxT" = (
|
||||||
/obj/structure/sign/securearea{
|
/obj/structure/sign/securearea{
|
||||||
desc = "A warning sign which reads 'HIGH VOLTAGE'";
|
desc = "A warning sign which reads 'HIGH VOLTAGE'";
|
||||||
@@ -102097,6 +102222,24 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/plating,
|
/turf/simulated/floor/plating,
|
||||||
/area/security/perma)
|
/area/security/perma)
|
||||||
|
"qZv" = (
|
||||||
|
/obj/machinery/space_heater,
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
icon = 'icons/obj/objects.dmi';
|
||||||
|
icon_state = "rail";
|
||||||
|
name = "safety rail"
|
||||||
|
},
|
||||||
|
/turf/simulated/floor{
|
||||||
|
dir = 4;
|
||||||
|
icon_state = "purple"
|
||||||
|
},
|
||||||
|
/area/science/lab)
|
||||||
|
"rev" = (
|
||||||
|
/turf/simulated/floor{
|
||||||
|
dir = 8;
|
||||||
|
icon_state = "purple"
|
||||||
|
},
|
||||||
|
/area/science/lab)
|
||||||
"rgk" = (
|
"rgk" = (
|
||||||
/obj/machinery/door/airlock/glass_security{
|
/obj/machinery/door/airlock/glass_security{
|
||||||
name = "Prison Medbay";
|
name = "Prison Medbay";
|
||||||
@@ -102180,6 +102323,14 @@
|
|||||||
/area/maintenance/fsmaint2{
|
/area/maintenance/fsmaint2{
|
||||||
name = "Auxiliary Docking"
|
name = "Auxiliary Docking"
|
||||||
})
|
})
|
||||||
|
"rFQ" = (
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
dir = 1;
|
||||||
|
icon_state = "warning_corner";
|
||||||
|
tag = "icon-warning_corner (NORTH)"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"rGr" = (
|
"rGr" = (
|
||||||
/obj/structure/punching_bag/clown,
|
/obj/structure/punching_bag/clown,
|
||||||
/turf/simulated/floor{
|
/turf/simulated/floor{
|
||||||
@@ -102288,11 +102439,23 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/plating,
|
/turf/simulated/floor/plating,
|
||||||
/area/engineering/atmos)
|
/area/engineering/atmos)
|
||||||
|
"rVw" = (
|
||||||
|
/obj/structure/hanging_lantern{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"rXG" = (
|
"rXG" = (
|
||||||
/turf/simulated/floor{
|
/turf/simulated/floor{
|
||||||
icon_state = "freezerfloor"
|
icon_state = "freezerfloor"
|
||||||
},
|
},
|
||||||
/area/security/perma)
|
/area/security/perma)
|
||||||
|
"sdG" = (
|
||||||
|
/obj/structure/hanging_lantern{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"sel" = (
|
"sel" = (
|
||||||
/obj/machinery/door/firedoor/border_only{
|
/obj/machinery/door/firedoor/border_only{
|
||||||
name = "Firelock South"
|
name = "Firelock South"
|
||||||
@@ -102427,6 +102590,14 @@
|
|||||||
tag = "icon-darkred (SOUTHWEST)"
|
tag = "icon-darkred (SOUTHWEST)"
|
||||||
},
|
},
|
||||||
/area/security/brig)
|
/area/security/brig)
|
||||||
|
"tYI" = (
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
dir = 4;
|
||||||
|
icon_state = "warning";
|
||||||
|
tag = "icon-warning (EAST)"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"ucb" = (
|
"ucb" = (
|
||||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||||
/obj/structure/cable{
|
/obj/structure/cable{
|
||||||
@@ -102567,6 +102738,22 @@
|
|||||||
/area/maintenance/fsmaint2{
|
/area/maintenance/fsmaint2{
|
||||||
name = "Auxiliary Docking"
|
name = "Auxiliary Docking"
|
||||||
})
|
})
|
||||||
|
"uUg" = (
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
dir = 4;
|
||||||
|
icon_state = "warning_corner";
|
||||||
|
tag = "icon-warning_corner (EAST)"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
|
"uWm" = (
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
dir = 8;
|
||||||
|
icon_state = "warning";
|
||||||
|
tag = "icon-warning (WEST)"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"vXP" = (
|
"vXP" = (
|
||||||
/obj/structure/cable{
|
/obj/structure/cable{
|
||||||
d1 = 1;
|
d1 = 1;
|
||||||
@@ -102634,6 +102821,13 @@
|
|||||||
icon_state = "dark"
|
icon_state = "dark"
|
||||||
},
|
},
|
||||||
/area/security/perma)
|
/area/security/perma)
|
||||||
|
"wTp" = (
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
icon_state = "warning_corner";
|
||||||
|
tag = "icon-warning_corner"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"wWo" = (
|
"wWo" = (
|
||||||
/obj/structure/cable{
|
/obj/structure/cable{
|
||||||
d1 = 1;
|
d1 = 1;
|
||||||
@@ -102660,6 +102854,15 @@
|
|||||||
/area/maintenance/fsmaint2{
|
/area/maintenance/fsmaint2{
|
||||||
name = "Auxiliary Docking"
|
name = "Auxiliary Docking"
|
||||||
})
|
})
|
||||||
|
"xiv" = (
|
||||||
|
/obj/structure/window/reinforced{
|
||||||
|
dir = 1
|
||||||
|
},
|
||||||
|
/obj/structure/grille,
|
||||||
|
/obj/structure/window/reinforced,
|
||||||
|
/obj/structure/window/full/reinforced,
|
||||||
|
/turf/simulated/floor/plating,
|
||||||
|
/area/science/lab)
|
||||||
"xix" = (
|
"xix" = (
|
||||||
/obj/structure/window/reinforced{
|
/obj/structure/window/reinforced{
|
||||||
dir = 1
|
dir = 1
|
||||||
@@ -102736,6 +102939,15 @@
|
|||||||
},
|
},
|
||||||
/turf/simulated/floor/plating,
|
/turf/simulated/floor/plating,
|
||||||
/area/engineering/atmos)
|
/area/engineering/atmos)
|
||||||
|
"xvF" = (
|
||||||
|
/obj/machinery/light/small{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/turf/simulated/floor/plating,
|
||||||
|
/area/science/lab)
|
||||||
|
"xyP" = (
|
||||||
|
/turf/simulated/wall,
|
||||||
|
/area/science/lab)
|
||||||
"xFx" = (
|
"xFx" = (
|
||||||
/obj/structure/disposaloutlet,
|
/obj/structure/disposaloutlet,
|
||||||
/obj/structure/window/reinforced{
|
/obj/structure/window/reinforced{
|
||||||
@@ -102754,6 +102966,14 @@
|
|||||||
/area/maintenance/fsmaint2{
|
/area/maintenance/fsmaint2{
|
||||||
name = "Auxiliary Docking"
|
name = "Auxiliary Docking"
|
||||||
})
|
})
|
||||||
|
"xGd" = (
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
dir = 1;
|
||||||
|
icon_state = "warning";
|
||||||
|
tag = "icon-warning (NORTH)"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"xIN" = (
|
"xIN" = (
|
||||||
/obj/effect/decal/warning_stripes{
|
/obj/effect/decal/warning_stripes{
|
||||||
icon_state = "warning";
|
icon_state = "warning";
|
||||||
@@ -102826,6 +103046,17 @@
|
|||||||
},
|
},
|
||||||
/turf/unsimulated/floor/snow,
|
/turf/unsimulated/floor/snow,
|
||||||
/area/surface/forest/south)
|
/area/surface/forest/south)
|
||||||
|
"xTs" = (
|
||||||
|
/obj/structure/fence/end{
|
||||||
|
dir = 4
|
||||||
|
},
|
||||||
|
/obj/effect/decal/warning_stripes{
|
||||||
|
dir = 10;
|
||||||
|
icon_state = "warning";
|
||||||
|
tag = "icon-warning (SOUTHWEST)"
|
||||||
|
},
|
||||||
|
/turf/unsimulated/floor/snow/asphalt,
|
||||||
|
/area/science/lab)
|
||||||
"xTt" = (
|
"xTt" = (
|
||||||
/obj/structure/cable{
|
/obj/structure/cable{
|
||||||
d1 = 1;
|
d1 = 1;
|
||||||
@@ -102853,6 +103084,7 @@
|
|||||||
/area/security/perma)
|
/area/security/perma)
|
||||||
"yaW" = (
|
"yaW" = (
|
||||||
/obj/machinery/door_timer/cell_3{
|
/obj/machinery/door_timer/cell_3{
|
||||||
|
dir = 8;
|
||||||
pixel_x = -32;
|
pixel_x = -32;
|
||||||
pixel_y = 0
|
pixel_y = 0
|
||||||
},
|
},
|
||||||
@@ -102862,6 +103094,22 @@
|
|||||||
tag = "icon-darkred (WEST)"
|
tag = "icon-darkred (WEST)"
|
||||||
},
|
},
|
||||||
/area/security/brig)
|
/area/security/brig)
|
||||||
|
"yjp" = (
|
||||||
|
/obj/structure/table,
|
||||||
|
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
||||||
|
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
||||||
|
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
||||||
|
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
||||||
|
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
||||||
|
/obj/item/clothing/suit/storage/wintercoat/medical/science,
|
||||||
|
/obj/machinery/media/receiver/boombox/wallmount/muzak{
|
||||||
|
pixel_y = -24
|
||||||
|
},
|
||||||
|
/turf/simulated/floor{
|
||||||
|
dir = 10;
|
||||||
|
icon_state = "purple"
|
||||||
|
},
|
||||||
|
/area/science/lab)
|
||||||
"ykP" = (
|
"ykP" = (
|
||||||
/obj/structure/window/reinforced{
|
/obj/structure/window/reinforced{
|
||||||
dir = 1
|
dir = 1
|
||||||
@@ -126901,7 +127149,7 @@ aYZ
|
|||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aZb
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aZb
|
aZb
|
||||||
@@ -127203,7 +127451,7 @@ aYZ
|
|||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aZb
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
@@ -127501,11 +127749,11 @@ boL
|
|||||||
boL
|
boL
|
||||||
boL
|
boL
|
||||||
boL
|
boL
|
||||||
aYZ
|
bjP
|
||||||
aYZ
|
nJG
|
||||||
aYZ
|
nJG
|
||||||
aYZ
|
nJG
|
||||||
aYZ
|
xTs
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
@@ -127800,14 +128048,14 @@ bmX
|
|||||||
bmd
|
bmd
|
||||||
boN
|
boN
|
||||||
bpM
|
bpM
|
||||||
|
boO
|
||||||
|
rev
|
||||||
|
yjp
|
||||||
bjP
|
bjP
|
||||||
aYZ
|
rVw
|
||||||
aYZ
|
nJR
|
||||||
aYZ
|
nJR
|
||||||
aYZ
|
eVS
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
@@ -128100,19 +128348,19 @@ bkR
|
|||||||
blY
|
blY
|
||||||
bmX
|
bmX
|
||||||
bmd
|
bmd
|
||||||
boO
|
bmd
|
||||||
bpO
|
bpR
|
||||||
bjP
|
naM
|
||||||
aYZ
|
kHu
|
||||||
aYZ
|
noa
|
||||||
aYZ
|
pcf
|
||||||
aYZ
|
iZe
|
||||||
aYZ
|
hta
|
||||||
aYZ
|
nJR
|
||||||
aYZ
|
jtQ
|
||||||
aYZ
|
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
|
boz
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
@@ -128402,16 +128650,16 @@ bkQ
|
|||||||
blX
|
blX
|
||||||
bmY
|
bmY
|
||||||
bmd
|
bmd
|
||||||
boO
|
bmd
|
||||||
bpN
|
bpR
|
||||||
bqx
|
bqx
|
||||||
aYZ
|
kHu
|
||||||
aYZ
|
noa
|
||||||
aYZ
|
xiv
|
||||||
bdN
|
wTp
|
||||||
aYZ
|
tYI
|
||||||
aYZ
|
uUg
|
||||||
aYZ
|
eVS
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
@@ -128704,16 +128952,16 @@ bkT
|
|||||||
bma
|
bma
|
||||||
bmZ
|
bmZ
|
||||||
bmd
|
bmd
|
||||||
boO
|
bmd
|
||||||
bpQ
|
bpR
|
||||||
bqy
|
bqy
|
||||||
aYZ
|
kHu
|
||||||
aYZ
|
noa
|
||||||
aYZ
|
xiv
|
||||||
aYZ
|
qwz
|
||||||
aYZ
|
ntc
|
||||||
aYZ
|
xGd
|
||||||
aYZ
|
eVS
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aZb
|
aZb
|
||||||
@@ -129006,18 +129254,18 @@ bkS
|
|||||||
blZ
|
blZ
|
||||||
bmd
|
bmd
|
||||||
bmd
|
bmd
|
||||||
boO
|
bmd
|
||||||
bpP
|
bpR
|
||||||
bqy
|
mmF
|
||||||
|
kHu
|
||||||
|
jNt
|
||||||
|
xiv
|
||||||
|
hlM
|
||||||
|
uWm
|
||||||
|
rFQ
|
||||||
|
eVS
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
baU
|
|
||||||
aYZ
|
|
||||||
boz
|
boz
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
@@ -129308,18 +129556,18 @@ bkV
|
|||||||
blY
|
blY
|
||||||
bnb
|
bnb
|
||||||
bmd
|
bmd
|
||||||
boO
|
bmd
|
||||||
bpR
|
bpR
|
||||||
bqz
|
bqz
|
||||||
|
kHu
|
||||||
|
noa
|
||||||
|
ila
|
||||||
|
nJR
|
||||||
|
sdG
|
||||||
|
nJR
|
||||||
|
eVS
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
baU
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
boz
|
|
||||||
aYZ
|
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
@@ -129612,14 +129860,14 @@ bna
|
|||||||
bnV
|
bnV
|
||||||
boP
|
boP
|
||||||
boP
|
boP
|
||||||
bnX
|
boP
|
||||||
aYZ
|
kHu
|
||||||
aYZ
|
dTR
|
||||||
aYZ
|
xyP
|
||||||
aYZ
|
haA
|
||||||
aYZ
|
xyP
|
||||||
aYZ
|
nJR
|
||||||
aYZ
|
eVS
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
@@ -129914,17 +130162,17 @@ bnc
|
|||||||
bnW
|
bnW
|
||||||
boP
|
boP
|
||||||
bpS
|
bpS
|
||||||
bnX
|
boP
|
||||||
aYZ
|
qZv
|
||||||
aYZ
|
jCa
|
||||||
aYZ
|
haA
|
||||||
aYZ
|
xvF
|
||||||
aYZ
|
xyP
|
||||||
aYZ
|
nJR
|
||||||
aYZ
|
jtQ
|
||||||
aYZ
|
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
|
bdN
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
@@ -130216,14 +130464,14 @@ bkW
|
|||||||
bjP
|
bjP
|
||||||
boP
|
boP
|
||||||
bnX
|
bnX
|
||||||
|
boP
|
||||||
|
boP
|
||||||
bnX
|
bnX
|
||||||
bnX
|
xyP
|
||||||
bnX
|
xyP
|
||||||
aYZ
|
xyP
|
||||||
aYZ
|
nJR
|
||||||
aYZ
|
eVS
|
||||||
aYZ
|
|
||||||
aYZ
|
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
aYZ
|
aYZ
|
||||||
|
|||||||
42
nano/templates/weathercontrol.tmpl
Normal file
42
nano/templates/weathercontrol.tmpl
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
<!--
|
||||||
|
Used In File(s): \code\game\machinery\weathercontrol.dm
|
||||||
|
-->
|
||||||
|
{{if data.error}}
|
||||||
|
<div class='item'>
|
||||||
|
<div class='statusDisplay'>
|
||||||
|
<div class="line">
|
||||||
|
<span class='bad'>{{:data.error}}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{else}}
|
||||||
|
<div class='item'>
|
||||||
|
<div class='statusDisplay'>
|
||||||
|
<div class="line">
|
||||||
|
<div class="statusLabel">Crystal refraction:</div>
|
||||||
|
<div class="statusValue">{{:data.crystals}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='item'>
|
||||||
|
<div class='statusDisplay'>
|
||||||
|
<div class="line">
|
||||||
|
<div class="statusLabel">Current snowfall:</div>
|
||||||
|
<div class="statusValue">{{:data.currentweather}} ({{:data.remaining_time}})</div>
|
||||||
|
</div>
|
||||||
|
<div class="line">
|
||||||
|
<div class="statusLabel">Forecast:</div>
|
||||||
|
<div class="statusValue">{{:data.forecast}}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class='item'>
|
||||||
|
<div class='statusDisplay'>
|
||||||
|
<div class="line">
|
||||||
|
{{:helper.link("Disrupt", "arrowrefresh-1-w", {'disrupt': '1'})}}
|
||||||
|
{{:helper.link("Intensify", "arrowstop-1-n", {'intensify': '1'})}}
|
||||||
|
{{:helper.link("Abate", "arrowstop-1-s", {'abate': '1'})}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
@@ -698,6 +698,7 @@
|
|||||||
#include "code\game\machinery\vending.dm"
|
#include "code\game\machinery\vending.dm"
|
||||||
#include "code\game\machinery\vending_packs.dm"
|
#include "code\game\machinery\vending_packs.dm"
|
||||||
#include "code\game\machinery\washing_machine.dm"
|
#include "code\game\machinery\washing_machine.dm"
|
||||||
|
#include "code\game\machinery\weathercontrol.dm"
|
||||||
#include "code\game\machinery\wishgranter.dm"
|
#include "code\game\machinery\wishgranter.dm"
|
||||||
#include "code\game\machinery\atmoalter\area_atmos_computer.dm"
|
#include "code\game\machinery\atmoalter\area_atmos_computer.dm"
|
||||||
#include "code\game\machinery\atmoalter\canister.dm"
|
#include "code\game\machinery\atmoalter\canister.dm"
|
||||||
@@ -2676,7 +2677,7 @@
|
|||||||
#include "maprendering\maprendering.dm"
|
#include "maprendering\maprendering.dm"
|
||||||
#include "maps\_map.dm"
|
#include "maps\_map.dm"
|
||||||
#include "maps\_map_override.dm"
|
#include "maps\_map_override.dm"
|
||||||
#include "maps\snaxi.dm"
|
#include "maps\tgstation.dm"
|
||||||
#include "maps\defficiency\areas.dm"
|
#include "maps\defficiency\areas.dm"
|
||||||
#include "maps\lampreystation\lamprey.dm"
|
#include "maps\lampreystation\lamprey.dm"
|
||||||
#include "maps\packedstation\telecomms.dm"
|
#include "maps\packedstation\telecomms.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user