mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 23:14:18 +01:00
Aurora 2: The 3/4thening (#17186)
* after dark * FIXES * breakin * butt * Update code/game/objects/items/devices/floor_painter.dm Co-authored-by: Cody Brittain <cbrittain10@yahoo.com> * Update code/game/objects/items/devices/floor_painter.dm Co-authored-by: Cody Brittain <cbrittain10@yahoo.com> * Update code/game/objects/structures/lattice.dm Co-authored-by: Cody Brittain <cbrittain10@yahoo.com> * testing 1 * a * FUCK THIS PRESET!!! * allah * OTEMACHI * tis' done * Project Exorcism : Sneed's Snairs (Formerly Chuck's) * Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm * Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm * Update stools.dm * Update code/game/objects/structures/stool_bed_chair_nest/stools.dm * Update code/game/objects/structures/stool_bed_chair_nest/stools.dm * Update stools.dm * Update chairs.dm * Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm * inhand fixes * airlocks (matt has cooked) fuck * my cody plays the mamba * fuck * fixes layering issue * airlocks and everything else Please fucking kill me * underlays * unfuck blending * finished replacing old ass shit * your ass is geass * conflicts die now * public fat'wa * progress on walls and windows * more mapping * baltimore accents be like * minor progress * monitors * fire alarms and apc adjustments * apcs pixel adjustments, final airlock look * also grilles * shuttle wall start plus shuttle windows * starting consoles * table outlines * I love broke ass sprites * fixing the stupid ass exterior walls * light fuckery * terminal directionals, external airlocks, table fixes, blahblahblah * fix 1 * fix 2 * some more fixes * fix chairs * basic untested railings and updating colors from atteria * bridge and some fixes * removing some artifacts on the new walls * breaking wood tables and adding 4 wall materials * fix * compile & wood fixes * make the horizon compile again * railings, firedoors, ATMs, intercomms and tables again * mapping begins also some tweaks to map view of icons * full tile steel walls * i sure hope nothing bad happens * airlock updates (untested) * reverts most wall machinery * skull * wall coloring * makes the tg wood chill out * work on airlocks * hull consistency * cause you live forever in the lights you make * whoops can't show that in a christian manga * terminals should be on walls and everything's hunky dory now also i changed the wood stuff as per atteria's suggestion * fixing airlocks * fixes * window resprite, coloring adjustments * scc hull resprite * new grilles, frame edits, and borosilicate * greyscale wood palette improvement * shuttle windows * window frame fix * apc update * refit and reshaded fire alarms * mapping icon fixes * table fixes * map fixes, platforms and stairs * updates cutter, new walls and terminals * mapping fixes * fix preview * preview fix stone * stairs * initial work for the map * railing and windowpane fuckery * new external airlocks * a * fix the maps in preparation * wall object pixel offsets * air alarms D1 * extinguisher cabinets * APC DESTROYED MISSION ACCOMPLISHED GOOD WORK * deck 3: floor decals, APCs, air alarms, fire extinguisher cabinets * deck 3: fireaxe cabinet * /shuttle_landmark/distress/blue, move base_turf from map to obj def * intercom presets * formatting * deck 1: floor decals * deck 2: named area fix (LMAO), signs to use single quotes * deck 2: floor decals, APCs, air alarms, fire extinguisher cabinets, fireaxe cabinets * Platforms and stairs! * grates and bugfixes * Angled ship walls + grate color fix * corrects apc anim overlay * deck 2 and away site fixes # Conflicts: # maps/sccv_horizon/sccv_horizon-2_deck_2.dmm * deck 2 missing grate * warning stripes * railings and ledges * windows and fixtures * windoorsagain * airlocks pt1 * windows de-seamed and transparent * airlocks and pixel offsets * fixes for airlocks * more airlock fixes * presets for ringer, request console and newscaster * 132 * asfsaf * kitchen tiling * thicker freezer tile bevels * More angled walls * New shutters and blast doors * directional corrections * ops railing fixes * updated window map things and shutters * value changes and blast door changes * Ledges and platforms galore (D2/D3) * all decks: fix door dirs * all decks: newscasters, intercoms, requests consoles, ringer consoles * helm light blue decals to dark blue * supermatter door dir fix * fix directional presets (dirs/offsets): newscaster, intercom, requests console, ringer console * firedoor changes * deck 3: overlapping wall mountables fixes * map changes * airlock changes * map tweaks * airlock & stair icons * various mapping modifications * Double airlocks + fixing denied states + fixing airlocks on all levels * Rebase * directional terminals buttons and lights again, platform tweaks terminal north facing sprites, atm/food terminal directionals proper door control and lightswitch directionals (presets still need to be set up, mapping) re-adds new light tube sprites, again new sprites for floor lights and the other stuff that got added adjusted platforms to be recolorable, added light and dark versions, fixed some shading * missing ERT outfit thingy fix * floor lights fixed * deck 3: various small fixes * deck 1: various small fixes * deck 2: various small fixes * fixes * d2 fixes & multitile door fix * d2 fixes, remove unused airlock files, button icon fixes, window icon fixes * make it actually compile, oops! * make it actually compile, pt2 * CE office camera * pew pew pew * pew pew pew 2 * fixes * deck 3: buttons fixes * deck 3: button and other fixes * deck 3: fixes and stuff * D1 fixes & skrell airlocks * minor D2 tweaks * a lot of airlock-related fixes, glass tables, paint sprayer fixes, decal fixes, changelog * maintenance hatch sprites * fixing double doors * flips multi-tiles, fixes multi-tiles, adds desk windoors * new plastic flaps * deck 2: a few buttons * side + middle doors * created paths for 3-tiles doors * apply to map the 3 tiles airlocks * some fixes, windoor alpha * remove this random ass potted plant * more map fixes * holodeck disposal pipe fix * secure airlock sprites no code or obj definitions yet * vault airlock * vault door fixes * scc window alpha * adjusts double door glass, firedoor open state * adjusts construction states for doors * remove some defunct icons and fix anims * assembly stuff * pharma fixes * vault door dir * firedoor smart generation moved to its own proc * lift doors, d1 fixes * firedoor smart generation: adjacent wall check * firedoor smart generation: adjacent firedoor check * all decks: missing firedoor and other fixes * deck 2: weird maint stairs fix * oops * diona airlock fix * the shuttle wall gigadeath * fixes * some fixes for leftover map item paths, and double lattices * new diona walls * more fixes * and more * deck 1: fix out of bounds keys * deck 3: fix out of bounds keys * runtime 3: duplicate APCs fix * all decks: make all 3 tile wide doors glass --------- Co-authored-by: Wezzy <wowzewow@gmail.com> Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com> Co-authored-by: Cody Brittain <cbrittain10@yahoo.com> Co-authored-by: kyres1 <noodle.buster31@gmail.com> Co-authored-by: Matt Atlas <liermattia@gmail.com> Co-authored-by: atteria <tarkona@protonmail.com> Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com> Co-authored-by: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com> Co-authored-by: naut <nautilussplat@gmail.com> Co-authored-by: naut <55491249+nauticall@users.noreply.github.com>
This commit is contained in:
co-authored by
Wezzy
Wowzewow
Cody Brittain
kyres1
Matt Atlas
atteria
Fluffy
DreamySkrell
naut
naut
parent
1e4d8bd6e0
commit
99b4033ca5
@@ -215,7 +215,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
pref.disabilities = list()
|
||||
|
||||
if(!pref.bgstate || !(pref.bgstate in pref.bgstate_options))
|
||||
pref.bgstate = "000"
|
||||
pref.bgstate = "000000"
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/content(var/mob/user)
|
||||
var/list/out = list()
|
||||
|
||||
@@ -173,17 +173,20 @@ var/list/preferences_datums = list()
|
||||
var/savefile/loaded_character
|
||||
var/datum/category_collection/player_setup_collection/player_setup
|
||||
|
||||
var/bgstate = "000"
|
||||
var/bgstate = "000000"
|
||||
var/list/bgstate_options = list(
|
||||
"fffff",
|
||||
"000",
|
||||
"new_steel",
|
||||
"dark2",
|
||||
"FFFFFF",
|
||||
"000000",
|
||||
"tiled_preview",
|
||||
"monotile_preview",
|
||||
"dark_preview",
|
||||
"wood",
|
||||
"wood_light",
|
||||
"grass_alt",
|
||||
"new_reinforced",
|
||||
"new_white"
|
||||
"grass",
|
||||
"reinforced",
|
||||
"white_preview",
|
||||
"freezer",
|
||||
"carpet",
|
||||
"reinforced"
|
||||
)
|
||||
|
||||
var/fov_cone_alpha = 255
|
||||
@@ -270,7 +273,7 @@ var/list/preferences_datums = list()
|
||||
BG = new
|
||||
BG.appearance_flags = TILE_BOUND|PIXEL_SCALE|NO_CLIENT_COLOR
|
||||
BG.layer = TURF_LAYER
|
||||
BG.icon = 'icons/turf/total_floors.dmi'
|
||||
BG.icon = 'icons/turf/flooring/tiles.dmi'
|
||||
LAZYSET(char_render_holders, "BG", BG)
|
||||
client.screen |= BG
|
||||
BG.icon_state = bgstate
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/obj/machinery/atm
|
||||
name = "Idris SelfServ Teller"
|
||||
desc = "For all your monetary needs! Astronomical figures!"
|
||||
icon = 'icons/obj/terminals.dmi'
|
||||
icon = 'icons/obj/machinery/wall/terminals.dmi'
|
||||
icon_state = "atm"
|
||||
anchored = 1
|
||||
idle_power_usage = 10
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "Idris Ordering Terminal"
|
||||
desc = "An ordering terminal designed by Idris for quicker expedition."
|
||||
desc_info = "To edit the menu, select 'Toggle Lock' while wearing an ID with kitchen access. \nAll credits from the machine will automatically go to the civilian account."
|
||||
icon = 'icons/obj/terminals.dmi'
|
||||
icon = 'icons/obj/machinery/wall/terminals.dmi'
|
||||
icon_state = "kitchenterminal"
|
||||
anchored = 1
|
||||
idle_power_usage = 10
|
||||
@@ -69,7 +69,6 @@
|
||||
ticket_number++
|
||||
T.set_content_unsafe(tickettname, ticket, sum)
|
||||
stamp_receipt(T)
|
||||
flick("kitchenterminal-receipt",src)
|
||||
|
||||
/obj/machinery/orderterminal/proc/stamp_receipt(obj/item/paper/R) // Stamps the papers, made into a proc to avoid copy pasting too much
|
||||
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
|
||||
|
||||
@@ -89,6 +89,10 @@ This spawner places pipe leading up to the interior door, you will need to finis
|
||||
handle_door_stuff(A, is_this_an_interior_airlock)
|
||||
if(one_door_only == DOOR_FLIPPED_PLACEMENT)
|
||||
the_button.forceMove(get_step(the_button, NORTH))
|
||||
if((interior_direction & (EAST|WEST)) || (exterior_direction & (EAST|WEST)))
|
||||
A.dir = EAST
|
||||
else
|
||||
A.dir = NORTH
|
||||
|
||||
/obj/effect/map_effect/airlock/proc/handle_door_stuff(obj/machinery/door/airlock/A, is_this_an_interior_airlock) //This sets up the door vars correctly and then locks it before first use
|
||||
A.set_frequency(radio_frequency)
|
||||
@@ -342,4 +346,4 @@ This spawner places pipe leading up to the interior door, you will need to finis
|
||||
#undef AIRPUMP_TAG
|
||||
#undef SENSOR_TAG
|
||||
#undef OUTER_DOOR_TAG
|
||||
#undef INNER_DOOR_TAG
|
||||
#undef INNER_DOOR_TAG
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
icon = 'icons/effects/map_effects.dmi'
|
||||
var/window_path = /obj/structure/window/basic
|
||||
var/frame_path = /obj/structure/window_frame
|
||||
var/grille_path = /obj/structure/grille
|
||||
var/grille_path = /obj/structure/grille/over
|
||||
var/firedoor_path = /obj/machinery/door/firedoor
|
||||
var/single_window = FALSE // For full window panes and full windows.
|
||||
var/spawn_frame = FALSE // For full windows.
|
||||
@@ -206,4 +206,4 @@
|
||||
/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced/firedoor
|
||||
name = "full reinforced borosilicate window spawner with firedoor"
|
||||
icon_state = "full_brwindow-f"
|
||||
spawn_firedoor = TRUE
|
||||
spawn_firedoor = TRUE
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
/turf/simulated/floor/holofloor/tiled
|
||||
name = "floor"
|
||||
icon = 'icons/turf/flooring/tiles.dmi'
|
||||
icon_state = "steel"
|
||||
icon_state = "tiled_preview"
|
||||
initial_flooring = /singleton/flooring/tiling
|
||||
|
||||
/turf/simulated/floor/holofloor/tiled/ramp
|
||||
@@ -46,42 +46,37 @@
|
||||
|
||||
/turf/simulated/floor/holofloor/tiled/dark
|
||||
name = "dark floor"
|
||||
icon_state = "dark"
|
||||
icon_state = "dark_preview"
|
||||
initial_flooring = /singleton/flooring/tiling/dark
|
||||
|
||||
/turf/simulated/floor/holofloor/lino
|
||||
name = "lino"
|
||||
icon = 'icons/turf/flooring/linoleum.dmi'
|
||||
icon_state = "lino_grey"
|
||||
initial_flooring = /singleton/flooring/linoleum/grey
|
||||
icon_state = "lino_diamond"
|
||||
initial_flooring = /singleton/flooring/linoleum/diamond
|
||||
color = COLOR_LINOLEUM
|
||||
|
||||
/turf/simulated/floor/holofloor/wood
|
||||
name = "wooden floor"
|
||||
icon = 'icons/turf/flooring/wood.dmi'
|
||||
icon = 'icons/turf/flooring/tiles.dmi'
|
||||
icon_state = "wood"
|
||||
initial_flooring = /singleton/flooring/wood
|
||||
tile_outline = "wood"
|
||||
tile_outline_blend_process = ICON_ADD
|
||||
color = WOOD_COLOR_GENERIC
|
||||
|
||||
/turf/simulated/floor/holofloor/grass
|
||||
name = "lush grass"
|
||||
icon = 'icons/turf/flooring/grass.dmi'
|
||||
icon_state = "grass0"
|
||||
initial_flooring = /singleton/flooring/grass
|
||||
footstep_sound = /singleton/sound_category/grass_footstep
|
||||
|
||||
/turf/simulated/floor/holofloor/grass/alt
|
||||
name = "lush grass"
|
||||
icon = 'icons/turf/total_floors.dmi'
|
||||
icon_state = "grass_alt"
|
||||
initial_flooring = /singleton/flooring/grass/alt
|
||||
|
||||
/turf/simulated/floor/holofloor/snow
|
||||
name = "snow"
|
||||
base_name = "snow"
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
base_icon = 'icons/turf/floors.dmi'
|
||||
icon_state = "snow"
|
||||
base_icon_state = "snow"
|
||||
footstep_sound = /singleton/sound_category/snow_footstep
|
||||
icon = 'icons/turf/flooring/snow.dmi'
|
||||
icon_state = "snow0"
|
||||
initial_flooring = /singleton/flooring/snow
|
||||
|
||||
/turf/simulated/floor/holofloor/reinforced
|
||||
icon = 'icons/turf/flooring/tiles.dmi'
|
||||
@@ -153,7 +148,7 @@
|
||||
/obj/structure/holostool
|
||||
name = "stool"
|
||||
desc = "Apply butt."
|
||||
icon = 'icons/obj/furniture.dmi'
|
||||
icon = 'icons/obj/structure/chairs.dmi'
|
||||
icon_state = "stool_padded_preview"
|
||||
anchored = 1.0
|
||||
|
||||
|
||||
@@ -281,7 +281,7 @@
|
||||
var/flesh_colour = seed.get_trait(TRAIT_FLESH_COLOUR)
|
||||
if(!flesh_colour) flesh_colour = seed.get_trait(TRAIT_PRODUCT_COLOUR)
|
||||
for(var/i=0,i<2,i++)
|
||||
var/obj/item/stack/tile/grass_alt/G = new (user.loc)
|
||||
var/obj/item/stack/tile/grass/G = new (user.loc)
|
||||
if(flesh_colour) G.color = flesh_colour
|
||||
for (var/obj/item/stack/tile/grass/NG in user.loc)
|
||||
if(G==NG)
|
||||
|
||||
@@ -210,14 +210,17 @@
|
||||
user.drop_item(T)
|
||||
anchored = TRUE
|
||||
on_anchored()
|
||||
pixel_x = DIR2PIXEL_X(ndir)
|
||||
pixel_y = DIR2PIXEL_Y(ndir)
|
||||
set_pixel_offsets()
|
||||
|
||||
/obj/item/device/electronic_assembly/wallmount/on_unanchored()
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
..()
|
||||
|
||||
/obj/item/device/electronic_assembly/wallmount/set_pixel_offsets()
|
||||
pixel_x = DIR2PIXEL_X(dir)
|
||||
pixel_y = DIR2PIXEL_Y(dir)
|
||||
|
||||
/obj/item/device/electronic_assembly/wallmount/heavy
|
||||
name = "heavy wall-mounted electronic assembly"
|
||||
icon_state = "setup_wallmount_large"
|
||||
@@ -246,4 +249,4 @@
|
||||
max_complexity = IC_COMPLEXITY_BASE / 2
|
||||
|
||||
/obj/item/device/electronic_assembly/proc/get_assembly_holder()
|
||||
return src
|
||||
return src
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
recipes += new /datum/stack_recipe_list("construction recipes",
|
||||
list(
|
||||
new /datum/stack_recipe("regular floor tile", /obj/item/stack/tile/floor, 1, 4, 20),
|
||||
new /datum/stack_recipe("full regular floor tile", /obj/item/stack/tile/floor/full, 1, 4, 20),
|
||||
new /datum/stack_recipe("full regular floor tile", /obj/item/stack/tile/mono, 1, 4, 20),
|
||||
new /datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60),
|
||||
new /datum/stack_recipe("steel barricade", /obj/structure/barricade/metal, BUILD_AMT, time = 10 SECONDS, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("barbed wire", /obj/item/stack/barbed_wire, 1, 2, 20),
|
||||
@@ -78,32 +78,23 @@
|
||||
new /datum/stack_recipe("shooting target", /obj/item/target, 5, time = 10, one_per_turf = 0, on_floor = 1),
|
||||
new /datum/stack_recipe("dark office chair", /obj/structure/bed/stool/chair/office/dark, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("light office chair", /obj/structure/bed/stool/chair/office/light, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("plain padded chair", /obj/structure/bed/stool/chair/padded, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("steel chair (fancy)", /obj/structure/bed/stool/chair/fancy, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("sofa (middle)", /obj/structure/bed/stool/chair/sofa, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("sofa (left)", /obj/structure/bed/stool/chair/sofa/left, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("sofa (right)", /obj/structure/bed/stool/chair/sofa/right, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("sofa (corner)", /obj/structure/bed/stool/chair/sofa/corner, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("sofa (corner, concave)", /obj/structure/bed/stool/chair/sofa/corner/concave, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("sofa (corner, convex)", /obj/structure/bed/stool/chair/sofa/corner/convex, BUILD_AMT, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("steel crate", /obj/structure/closet/crate, BUILD_AMT, time = 50, one_per_turf = 1)
|
||||
))
|
||||
|
||||
recipes += new /datum/stack_recipe_list("airlock assemblies",
|
||||
list(
|
||||
new /datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("service airlock assembly", /obj/structure/door_assembly/door_assembly_ser, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("command airlock assembly", /obj/structure/door_assembly/door_assembly_com, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("security airlock assembly", /obj/structure/door_assembly/door_assembly_sec, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("engineering airlock assembly", /obj/structure/door_assembly/door_assembly_eng, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("generic airlock assembly", /obj/structure/door_assembly/door_assembly_generic, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("vault assembly", /obj/structure/door_assembly/door_assembly_vault, BUILD_AMT, time = 100, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("emergency shutter", /obj/structure/firedoor_assembly, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
|
||||
new /datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1)
|
||||
))
|
||||
@@ -286,8 +277,7 @@
|
||||
..()
|
||||
recipes += new /datum/stack_recipe_list("[display_name] construction",
|
||||
list(
|
||||
new /datum/stack_recipe("light marble floor tile", /obj/item/stack/tile/marble, 1, 4, 20),
|
||||
new /datum/stack_recipe("dark marble floor tile", /obj/item/stack/tile/marble/dark, 1, 4, 20)
|
||||
new /datum/stack_recipe("marble floor tile", /obj/item/stack/tile/marble, 1, 4, 20),
|
||||
))
|
||||
|
||||
/material/leather/generate_recipes()
|
||||
|
||||
@@ -52,7 +52,9 @@
|
||||
var/destruction_desc = "breaks apart" // Fancy string for barricades/tables/objects exploding.
|
||||
|
||||
// Icons
|
||||
var/colour_blend = TRUE
|
||||
var/icon_colour // Colour applied to products of this material.
|
||||
var/wall_colour // Colour applied to walls specifically.
|
||||
var/icon_base = "metal" // Wall and table base icon tag. See header.
|
||||
var/door_icon_base = "metal" // Door base icon tag. See header.
|
||||
var/icon_reinf = "reinf_metal" // Overlay used
|
||||
@@ -149,16 +151,20 @@
|
||||
adjective_name = display_name
|
||||
if(!shard_icon)
|
||||
shard_icon = shard_type
|
||||
|
||||
if(!icon_base)
|
||||
world.log << "materials: [src] has unknown icon_base [icon_base]."
|
||||
/*
|
||||
var/skip_blend = FALSE
|
||||
switch (icon_base)
|
||||
if ("solid")
|
||||
wall_icon = 'icons/turf/smooth/composite_solid.dmi'
|
||||
wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
|
||||
if ("stone")
|
||||
wall_icon = 'icons/turf/smooth/composite_stone.dmi'
|
||||
multipart_reinf_icon = 'icons/turf/smooth/composite_stone_reinf.dmi'
|
||||
if ("metal")
|
||||
wall_icon = 'icons/turf/smooth/composite_metal.dmi'
|
||||
if ("wood")
|
||||
wall_icon = 'icons/turf/smooth/composite_wood.dmi'
|
||||
if ("cult")
|
||||
wall_icon = 'icons/turf/smooth/cult_wall.dmi'
|
||||
skip_blend = TRUE
|
||||
@@ -179,14 +185,14 @@
|
||||
wall_icon = 'icons/turf/smooth/concrete_wall.dmi'
|
||||
skip_blend = TRUE
|
||||
else
|
||||
world.log << "materials: [src] has unknown icon_base [icon_base]."
|
||||
|
||||
if (wall_icon && icon_colour && !skip_blend)
|
||||
world.log << "materials: [src] has unknown icon_base [icon_base]."*/
|
||||
var/blend_colour = wall_colour ? wall_colour : icon_colour
|
||||
if (wall_icon && blend_colour && colour_blend)
|
||||
wall_icon = new(wall_icon)
|
||||
wall_icon.Blend(icon_colour, ICON_MULTIPLY)
|
||||
wall_icon.Blend(blend_colour, ICON_MULTIPLY)
|
||||
if (multipart_reinf_icon)
|
||||
multipart_reinf_icon = new(multipart_reinf_icon)
|
||||
multipart_reinf_icon.Blend(icon_colour, ICON_MULTIPLY)
|
||||
multipart_reinf_icon.Blend(blend_colour, ICON_MULTIPLY)
|
||||
|
||||
// This is a placeholder for proper integration of windows/windoors into the system.
|
||||
/material/proc/build_windows(var/mob/living/user, var/obj/item/stack/used_stack)
|
||||
@@ -353,7 +359,9 @@
|
||||
stack_type = /obj/item/stack/material/sandstone
|
||||
icon_base = "stone"
|
||||
icon_reinf = "reinf_stone"
|
||||
icon_colour = "#D9C179"
|
||||
icon_colour = "#d9c179"
|
||||
wall_icon = 'icons/turf/smooth/composite_stone.dmi'
|
||||
multipart_reinf_icon = 'icons/turf/smooth/composite_stone_reinf.dmi'
|
||||
shard_type = SHARD_STONE_PIECE
|
||||
weight = 22
|
||||
hardness = 55
|
||||
@@ -381,6 +389,8 @@
|
||||
name = MATERIAL_CONCRETE
|
||||
icon_base = "concrete"
|
||||
icon_colour = "#D2D1CD"
|
||||
colour_blend = FALSE
|
||||
wall_icon = 'icons/turf/smooth/concrete_wall.dmi'
|
||||
stack_type = null
|
||||
golem = null
|
||||
|
||||
@@ -391,17 +401,22 @@
|
||||
conductivity = 11
|
||||
protectiveness = 10 // 33%
|
||||
icon_base = "solid"
|
||||
wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
|
||||
icon_reinf = "reinf_over"
|
||||
icon_colour = "#666666"
|
||||
icon_colour = COLOR_GRAY40
|
||||
wall_colour = COLOR_GRAY20
|
||||
golem = SPECIES_GOLEM_STEEL
|
||||
hitsound = 'sound/weapons/smash.ogg'
|
||||
weapon_hitsound = 'sound/weapons/metalhit.ogg'
|
||||
|
||||
|
||||
/material/diona
|
||||
name = MATERIAL_DIONA
|
||||
icon_colour = null
|
||||
stack_type = null
|
||||
wall_icon = 'icons/turf/smooth/diona_wall.dmi'
|
||||
icon_base = "biomass"
|
||||
colour_blend = FALSE
|
||||
integrity = 100
|
||||
// below is same as wood
|
||||
melting_point = T0C + 300
|
||||
@@ -426,9 +441,11 @@
|
||||
stack_type = /obj/item/stack/material/plasteel
|
||||
integrity = 400
|
||||
melting_point = 6000
|
||||
wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
|
||||
icon_base = "solid"
|
||||
icon_reinf = "reinf_over"
|
||||
icon_colour = "#666666"
|
||||
icon_colour = "#545c68"
|
||||
wall_colour = COLOR_GRAY20
|
||||
explosion_resistance = 25
|
||||
hardness = 80
|
||||
weight = 23
|
||||
@@ -458,7 +475,7 @@
|
||||
name = MATERIAL_GLASS
|
||||
stack_type = /obj/item/stack/material/glass
|
||||
flags = MATERIAL_BRITTLE
|
||||
icon_colour = "#00E1FF"
|
||||
icon_colour = null
|
||||
opacity = 0.3
|
||||
integrity = 100
|
||||
shard_type = SHARD_SHARD
|
||||
@@ -467,6 +484,7 @@
|
||||
weight = 15
|
||||
protectiveness = 0 // 0%
|
||||
conductivity = 1 // Glass shards don't conduct.
|
||||
icon_base = "glass"
|
||||
door_icon_base = "stone"
|
||||
destruction_desc = "shatters"
|
||||
window_options = list("One Direction" = 1, "Full Window" = 4)
|
||||
@@ -688,6 +706,7 @@
|
||||
display_name = "elevator panelling"
|
||||
stack_type = null
|
||||
icon_colour = "#666666"
|
||||
wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
|
||||
integrity = 1200
|
||||
melting_point = 6000
|
||||
explosion_resistance = 200
|
||||
@@ -698,9 +717,10 @@
|
||||
/material/wood
|
||||
name = MATERIAL_WOOD
|
||||
stack_type = /obj/item/stack/material/wood // why wouldn't it have a stacktype seriously guys why
|
||||
icon_colour = "#824B28"
|
||||
icon_colour = WOOD_COLOR_GENERIC
|
||||
integrity = 50
|
||||
icon_base = "metal"
|
||||
icon_base = "wood"
|
||||
wall_icon = 'icons/turf/smooth/composite_wood.dmi'
|
||||
explosion_resistance = 2
|
||||
shard_type = SHARD_SPLINTER
|
||||
shard_can_repair = 0 // you can't weld splinters back into planks
|
||||
@@ -797,6 +817,7 @@
|
||||
stack_type = null
|
||||
icon_colour = "#B7410E"
|
||||
icon_base = "arust"
|
||||
wall_icon = 'icons/turf/smooth/rusty_wall.dmi'
|
||||
icon_reinf = "reinf_over"
|
||||
integrity = 250
|
||||
explosion_resistance = 8
|
||||
@@ -835,6 +856,8 @@
|
||||
name = MATERIAL_CULT
|
||||
display_name = "daemon stone"
|
||||
icon_base = "cult"
|
||||
wall_icon = 'icons/turf/smooth/cult_wall.dmi'
|
||||
colour_blend = FALSE
|
||||
icon_colour = COLOR_CULT
|
||||
icon_reinf = "reinf_cult"
|
||||
dooropen_noise = 'sound/effects/doorcreaky.ogg'
|
||||
@@ -1015,6 +1038,8 @@
|
||||
stack_type = null
|
||||
icon_colour = "#1C7400"
|
||||
icon_base = "vaurca"
|
||||
wall_icon = 'icons/turf/smooth/vaurca_wall.dmi'
|
||||
colour_blend = FALSE
|
||||
integrity = 400
|
||||
melting_point = 6000
|
||||
explosion_resistance = 25
|
||||
@@ -1027,8 +1052,10 @@
|
||||
name = MATERIAL_SHUTTLE
|
||||
display_name = "plastitanium alloy"
|
||||
stack_type = null
|
||||
icon_reinf = null
|
||||
icon_reinf = "no_sprite"//placeholder
|
||||
icon_base = "shuttle"
|
||||
//wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
|
||||
colour_blend = FALSE
|
||||
integrity = 1200
|
||||
melting_point = 6000 // Hull plating.
|
||||
explosion_resistance = 200 // Hull plating.
|
||||
@@ -1040,6 +1067,7 @@
|
||||
/material/shuttle/skrell
|
||||
name = MATERIAL_SHUTTLE_SKRELL
|
||||
display_name = "superadvanced alloy"
|
||||
colour_blend = FALSE
|
||||
icon_colour = null
|
||||
icon_base = "skrell"
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
name = "ore redemption console"
|
||||
desc = "A handy console which can be use to retrieve mining points for use in the mining vendor, or to set processing values for various ore types."
|
||||
desc_info = "Up to date settings for the refinery can be found in the Aurorastation Guide to Mining wikipage."
|
||||
icon = 'icons/obj/terminals.dmi'
|
||||
icon = 'icons/obj/machinery/wall/terminals.dmi'
|
||||
icon_state = "production_console"
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/obj/machinery/mineral/stacking_unit_console
|
||||
name = "stacking machine console"
|
||||
desc = "This console allows you to set the max stack size for the stacking machine, as well as letting you eject stacks manually."
|
||||
icon = 'icons/obj/terminals.dmi'
|
||||
icon = 'icons/obj/machinery/wall/terminals.dmi'
|
||||
icon_state = "production_console"
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
|
||||
@@ -90,10 +90,12 @@ There are several things that need to be remembered:
|
||||
#define GET_TAIL_LAYER (dir == NORTH ? TAIL_NORTH_LAYER : TAIL_SOUTH_LAYER)
|
||||
#define GET_TAIL_ACC_LAYER (dir == NORTH ? TAIL_NORTH_ACC_LAYER : TAIL_SOUTH_ACC_LAYER)
|
||||
|
||||
/proc/overlay_image(icon,icon_state,color,flags)
|
||||
/proc/overlay_image(icon, icon_state,color, flags, layer)
|
||||
var/image/ret = image(icon,icon_state)
|
||||
ret.color = color
|
||||
ret.appearance_flags = PIXEL_SCALE | flags
|
||||
if(layer)
|
||||
ret.layer = layer
|
||||
return ret
|
||||
|
||||
/mob/living/carbon/human
|
||||
|
||||
@@ -378,7 +378,7 @@ var/global/list/robot_modules = list(
|
||||
modules += new /obj/item/device/t_scanner(src) // to check underfloor wiring
|
||||
modules += new /obj/item/device/analyzer(src) // to check air pressure in the area
|
||||
modules += new /obj/item/device/lightreplacer(src) // to install lightning in the area
|
||||
modules += new /obj/item/device/floor_painter(src)// to make america great again (c)
|
||||
modules += new /obj/item/device/paint_sprayer(src)// to make america great again (c)
|
||||
modules += new /obj/item/pickaxe/borgdrill(src) // as station is being located at the rock terrain, which is presumed to be digged out to clear the area for new rooms
|
||||
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
|
||||
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
|
||||
@@ -444,7 +444,7 @@ var/global/list/robot_modules = list(
|
||||
modules += new /obj/item/gripper/no_use/loader(src)
|
||||
modules += new /obj/item/device/lightreplacer(src)
|
||||
modules += new /obj/item/device/pipe_painter(src)
|
||||
modules += new /obj/item/device/floor_painter(src)
|
||||
modules += new /obj/item/device/paint_sprayer(src)
|
||||
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
|
||||
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
|
||||
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
|
||||
@@ -960,7 +960,7 @@ var/global/list/robot_modules = list(
|
||||
modules += new /obj/item/soap/drone(src)
|
||||
modules += new /obj/item/extinguisher(src)
|
||||
modules += new /obj/item/device/pipe_painter(src)
|
||||
modules += new /obj/item/device/floor_painter(src)
|
||||
modules += new /obj/item/device/paint_sprayer(src)
|
||||
modules += new /obj/item/device/t_scanner(src)
|
||||
modules += new /obj/item/gripper/multi_purpose(src)
|
||||
modules += new /obj/item/gripper/no_use/loader(src)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/obj/item/modular_computer/console
|
||||
name = "console"
|
||||
desc = "A stationary computer."
|
||||
icon = 'icons/obj/modular_console.dmi'
|
||||
icon = 'icons/obj/machinery/modular_console.dmi'
|
||||
icon_state = "computer"
|
||||
icon_state_unpowered = "computer"
|
||||
icon_state_screensaver = "standby"
|
||||
|
||||
@@ -198,15 +198,15 @@
|
||||
allowed_directions = UP|DOWN
|
||||
icon_state = "ladder11"
|
||||
|
||||
// Stairs
|
||||
/obj/structure/ladder/away //a ladder that just looks like it's going down
|
||||
icon_state = "ladderawaydown"
|
||||
|
||||
/// Note that stairs facing left/right may need the stairs_lower structure if they're not placed against walls.
|
||||
/obj/structure/stairs
|
||||
name = "stairs"
|
||||
desc = "Stairs leading to another floor. Not too useful if the gravity goes out."
|
||||
icon = 'icons/obj/stairs.dmi'
|
||||
icon_state = "solid"
|
||||
icon_state = "stairs_3d"
|
||||
layer = TURF_LAYER
|
||||
density = FALSE
|
||||
opacity = FALSE
|
||||
@@ -240,7 +240,7 @@
|
||||
return
|
||||
if(target.z > (z + 1)) //Prevents wheelchair fuckery. Basically, you teleport twice because both the wheelchair + your mob collide with the stairs.
|
||||
return
|
||||
if(target.Enter(A, src))
|
||||
if(target.Enter(A, src) && A.dir == dir)
|
||||
A.forceMove(target)
|
||||
if(isliving(A))
|
||||
var/mob/living/L = A
|
||||
@@ -286,11 +286,170 @@
|
||||
bound_height = 64
|
||||
|
||||
/obj/structure/stairs/east
|
||||
icon_state = "east"
|
||||
dir = EAST
|
||||
bound_width = 64
|
||||
bound_x = -32
|
||||
pixel_x = -32
|
||||
|
||||
/obj/structure/stairs/west
|
||||
icon_state = "west"
|
||||
dir = WEST
|
||||
bound_width = 64
|
||||
|
||||
/obj/structure/stairs/flat
|
||||
icon_state = "flat"
|
||||
|
||||
/// Snowflake railing object for 64x64 stairs.
|
||||
/obj/structure/stairs_railing
|
||||
name = "railing"
|
||||
desc = "A railing for stairs."
|
||||
icon = 'icons/obj/stairs.dmi'
|
||||
icon_state = "railing"
|
||||
anchored = TRUE
|
||||
density = TRUE
|
||||
|
||||
/obj/structure/stairs_railing/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
|
||||
if(istype(mover,/obj/item/projectile))
|
||||
return TRUE
|
||||
if(!istype(mover) || mover.checkpass(PASSRAILING))
|
||||
return TRUE
|
||||
if(mover.throwing)
|
||||
return TRUE
|
||||
if(get_dir(loc, target) == dir)
|
||||
return !density
|
||||
return TRUE
|
||||
|
||||
/obj/structure/stairs_railing/CheckExit(var/atom/movable/O, var/turf/target)
|
||||
if(istype(O) && CanPass(O, target))
|
||||
return TRUE
|
||||
if(get_dir(O.loc, target) == dir)
|
||||
if(!density)
|
||||
return TRUE
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/stairs_lower
|
||||
name = "stairs"
|
||||
desc = "Stairs leading to another floor. Not too useful if the gravity goes out."
|
||||
icon = 'icons/obj/stairs.dmi'
|
||||
icon_state = "stairs_lower"
|
||||
anchored = TRUE
|
||||
density = FALSE
|
||||
|
||||
/obj/structure/stairs_lower/stairs_upper
|
||||
icon_state = "stairs_upper"
|
||||
|
||||
/// These stairs are used for fake depth. They don't go up z-levels.
|
||||
/obj/structure/platform_stairs
|
||||
name = "stairs"
|
||||
desc = "An archaic form of locomotion along the Z-axis."
|
||||
density = FALSE
|
||||
anchored = TRUE
|
||||
icon = 'icons/obj/structure/stairs.dmi'
|
||||
icon_state = "np_stair"
|
||||
|
||||
/obj/structure/platform_stairs/south_north_solo
|
||||
icon_state = "p_stair_sn_solo_cap"
|
||||
|
||||
/obj/structure/platform_stairs/full
|
||||
icon_state = "p_stair_full"
|
||||
|
||||
/obj/structure/platform_stairs/full/east_west_cap
|
||||
icon_state = "p_stair_ew_full_cap"
|
||||
|
||||
/obj/structure/platform_stairs/full/east_west_cap/half
|
||||
icon_state = "p_stair_ew_half_cap"
|
||||
|
||||
/obj/structure/platform_stairs/full/south_north_cap
|
||||
icon_state = "p_stair_sn_full_cap"
|
||||
|
||||
/obj/structure/platform_stairs/full/south_north_cap/half
|
||||
icon_state = "p_stair_sn_half_cap"
|
||||
|
||||
/obj/structure/platform
|
||||
name = "platform"
|
||||
desc = "An archaic method of preventing travel along the X and Y axes if you are on a lower point on the Z-axis."
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
flags = ON_BORDER
|
||||
climbable = TRUE
|
||||
icon = 'icons/obj/structure/platforms.dmi'
|
||||
icon_state = "platform"
|
||||
color = COLOR_TILED
|
||||
|
||||
/obj/structure/platform/dark
|
||||
icon_state = "platform_dark"
|
||||
color = COLOR_DARK_GUNMETAL
|
||||
|
||||
/obj/structure/platform/CanPass(atom/movable/mover, turf/target, height, air_group)
|
||||
if(istype(mover, /obj/item/projectile))
|
||||
return TRUE
|
||||
if(!istype(mover) || mover.checkpass(PASSRAILING))
|
||||
return TRUE
|
||||
if(mover.throwing)
|
||||
return TRUE
|
||||
if(get_dir(mover, target) == reverse_dir[dir])
|
||||
return FALSE
|
||||
if(height && (mover.dir == dir))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/platform/CheckExit(var/atom/movable/O, var/turf/target)
|
||||
if(istype(O) && CanPass(O, target))
|
||||
return TRUE
|
||||
if(get_dir(O, target) == reverse_dir[dir])
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/structure/platform/do_climb(mob/living/user)
|
||||
if(user.Adjacent(src) && !user.incapacitated())
|
||||
/// Custom climbing code because normal climb code doesn't support the tile-shifting that platforms do.
|
||||
/// If the user is on the same turf as the platform, we're trying to go past it, so we need to use reverse_dir.
|
||||
/// Otherwise, use our own turf.
|
||||
var/same_turf = get_turf(user) == get_turf(src)
|
||||
var/turf/next_turf = get_step(src, same_turf ? reverse_dir[dir] : 0)
|
||||
if(istype(next_turf) && !next_turf.density && can_climb(user))
|
||||
var/climb_text = same_turf ? "over" : "down"
|
||||
LAZYADD(climbers, user)
|
||||
user.visible_message(SPAN_NOTICE("[user] starts climbing [climb_text] \the [src]..."), SPAN_NOTICE("You start climbing [climb_text] \the [src]..."))
|
||||
if(do_after(user, 1 SECOND) && can_climb(user, TRUE))
|
||||
user.visible_message(SPAN_NOTICE("[user] climbs [climb_text] \the [src]."), SPAN_NOTICE("You climb [climb_text] \the [src]."))
|
||||
user.forceMove(next_turf)
|
||||
LAZYREMOVE(climbers, user)
|
||||
|
||||
/obj/structure/platform/ledge
|
||||
icon_state = "ledge"
|
||||
|
||||
/obj/structure/platform/ledge/dark
|
||||
icon_state = "ledge_dark"
|
||||
color = COLOR_DARK_GUNMETAL
|
||||
|
||||
/obj/structure/platform/cutout
|
||||
icon_state = "platform_cutout"
|
||||
density = 0
|
||||
|
||||
/obj/structure/platform/cutout/dark
|
||||
icon_state = "platform_cutout_dark"
|
||||
color = COLOR_DARK_GUNMETAL
|
||||
|
||||
/obj/structure/platform/cutout/CanPass()
|
||||
return TRUE
|
||||
|
||||
/// No special CanPass for this one.
|
||||
/obj/structure/platform_deco
|
||||
name = "platform"
|
||||
desc = "This is a platform."
|
||||
anchored = TRUE
|
||||
icon = 'icons/obj/structure/platforms.dmi'
|
||||
icon_state = "platform_deco"
|
||||
color = COLOR_TILED
|
||||
|
||||
/obj/structure/platform_deco/dark
|
||||
icon_state = "platform_deco_dark"
|
||||
color = COLOR_DARK_GUNMETAL
|
||||
|
||||
/obj/structure/platform_deco/ledge
|
||||
icon_state = "ledge_deco"
|
||||
|
||||
/obj/structure/platform_deco/ledge/dark
|
||||
icon_state = "ledge_deco_dark"
|
||||
color = COLOR_DARK_GUNMETAL
|
||||
|
||||
@@ -207,6 +207,17 @@
|
||||
for(var/obj/O in src)
|
||||
O.hide(0)
|
||||
|
||||
/turf/simulated/open/examine(mob/user, distance, infix, suffix)
|
||||
if(..(user, 2))
|
||||
var/depth = 1
|
||||
for(var/T = GetBelow(src); isopenspace(T); T = GetBelow(T))
|
||||
depth += 1
|
||||
to_chat(user, "It is about [depth] level\s deep.")
|
||||
|
||||
|
||||
/turf/simulated/open/is_open()
|
||||
return TRUE
|
||||
|
||||
/turf/simulated/open/update_icon(mapload)
|
||||
update_mimic(!mapload)
|
||||
|
||||
|
||||
@@ -89,8 +89,127 @@
|
||||
else if(update_neighbors)
|
||||
turf_to_check.update_icon()
|
||||
|
||||
/turf/simulated/floor/exoplanet/update_dirt()
|
||||
return // it's already dirt, silly
|
||||
//Water
|
||||
/turf/simulated/floor/exoplanet/water/update_icon()
|
||||
return
|
||||
|
||||
/turf/simulated/floor/exoplanet/water/shallow
|
||||
name = "shallow water"
|
||||
icon = 'icons/misc/beach.dmi'
|
||||
icon_state = "seashallow"
|
||||
footstep_sound = /singleton/sound_category/water_footstep
|
||||
|
||||
/turf/simulated/floor/exoplanet/water/shallow/attackby(obj/item/O, var/mob/living/user)
|
||||
var/obj/item/reagent_containers/RG = O
|
||||
if (reagent_type && istype(RG) && RG.is_open_container() && RG.reagents)
|
||||
RG.reagents.add_reagent(reagent_type, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
|
||||
user.visible_message("<span class='notice'>[user] fills \the [RG] from \the [src].</span>","<span class='notice'>You fill \the [RG] from \the [src].</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/turf/simulated/floor/exoplanet/water/update_dirt()
|
||||
return // Water doesn't become dirty
|
||||
|
||||
//Ice
|
||||
/turf/simulated/floor/exoplanet/ice
|
||||
name = "ice"
|
||||
icon = 'icons/turf/flooring/snow.dmi'
|
||||
icon_state = "ice"
|
||||
|
||||
/turf/simulated/floor/exoplanet/ice/update_icon()
|
||||
return
|
||||
|
||||
/turf/simulated/floor/exoplanet/ice/dark
|
||||
icon_state = "icedark"
|
||||
|
||||
//Snow
|
||||
/turf/simulated/floor/exoplanet/snow
|
||||
name = "snow"
|
||||
icon = 'icons/turf/smooth/snow40.dmi'
|
||||
icon_state = "snow0"
|
||||
dirt_color = "#e3e7e8"
|
||||
footstep_sound = /singleton/sound_category/snow_footstep
|
||||
smooth = SMOOTH_MORE | SMOOTH_BORDER | SMOOTH_NO_CLEAR_ICON
|
||||
smoothing_hints = SMOOTHHINT_CUT_F | SMOOTHHINT_ONLY_MATCH_TURF | SMOOTHHINT_TARGETS_NOT_UNIQUE
|
||||
canSmoothWith = list(
|
||||
/turf/simulated/floor/exoplanet/snow,
|
||||
/turf/simulated/wall,
|
||||
/turf/unsimulated/wall
|
||||
) //Smooths with walls but not the inverse. This way to avoid layering over walls.
|
||||
|
||||
/turf/simulated/floor/exoplanet/snow/Initialize()
|
||||
. = ..()
|
||||
pixel_x = -4
|
||||
pixel_y = -4
|
||||
icon_state = pick("snow[rand(1,2)]","snow0","snow0")
|
||||
queue_smooth_neighbors(src)
|
||||
queue_smooth(src)
|
||||
|
||||
/turf/simulated/floor/exoplanet/snow/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
melt()
|
||||
|
||||
/turf/simulated/floor/exoplanet/snow/melt()
|
||||
ChangeTurf(/turf/simulated/floor/exoplanet/permafrost)
|
||||
|
||||
/turf/simulated/floor/exoplanet/permafrost
|
||||
name = "permafrost"
|
||||
icon = 'icons/turf/flooring/snow.dmi'
|
||||
icon_state = "permafrost"
|
||||
footstep_sound = /singleton/sound_category/asteroid_footstep
|
||||
|
||||
//Grass
|
||||
/turf/simulated/floor/exoplanet/grass
|
||||
name = "grass"
|
||||
icon = 'icons/turf/jungle.dmi'
|
||||
icon_state = "greygrass"
|
||||
color = "#799c4b"
|
||||
footstep_sound = /singleton/sound_category/grass_footstep
|
||||
|
||||
/turf/simulated/floor/exoplanet/grass/Initialize()
|
||||
. = ..()
|
||||
if(current_map.use_overmap)
|
||||
var/obj/effect/overmap/visitable/sector/exoplanet/E = map_sectors["[z]"]
|
||||
if(istype(E) && E.grass_color)
|
||||
color = E.grass_color
|
||||
if(!resources)
|
||||
resources = list()
|
||||
if(prob(5))
|
||||
resources[MATERIAL_URANIUM] = rand(1,3)
|
||||
if(prob(2))
|
||||
resources[MATERIAL_DIAMOND] = 1
|
||||
|
||||
/turf/simulated/floor/exoplanet/grass/grove
|
||||
icon_state = "grove_grass1"
|
||||
color = null
|
||||
has_edge_icon = FALSE
|
||||
|
||||
/turf/simulated/floor/exoplanet/grass/grove/Initialize()
|
||||
. = ..()
|
||||
icon_state = "grove_grass[rand(1,2)]"
|
||||
|
||||
//Sand
|
||||
/turf/simulated/floor/exoplanet/desert
|
||||
name = "sand"
|
||||
desc = "It's coarse and gets everywhere."
|
||||
dirt_color = "#ae9e66"
|
||||
footstep_sound = /singleton/sound_category/sand_footstep
|
||||
|
||||
/turf/simulated/floor/exoplanet/desert/Initialize()
|
||||
. = ..()
|
||||
icon_state = "desert[rand(0,4)]"
|
||||
|
||||
/turf/simulated/floor/exoplanet/mineral
|
||||
name = "sand"
|
||||
desc = "It's coarse and gets everywhere."
|
||||
dirt_color = "#544c31"
|
||||
footstep_sound = /singleton/sound_category/sand_footstep
|
||||
|
||||
//Concrete
|
||||
/turf/simulated/floor/exoplanet/concrete
|
||||
name = "concrete"
|
||||
desc = "Stone-like artificial material."
|
||||
icon = 'icons/turf/flooring/concrete.dmi'
|
||||
icon_state = "concrete"
|
||||
|
||||
//Special world edge turf,
|
||||
/turf/unsimulated/planet_edge
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/turf/simulated/floor/exoplanet/concrete
|
||||
name = "concrete"
|
||||
desc = "Stone-like artificial material."
|
||||
icon = 'icons/turf/flooring/misc.dmi'
|
||||
icon = 'icons/turf/flooring/concrete.dmi'
|
||||
icon_state = "concrete"
|
||||
does_footprint = FALSE
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
icon_state = "grove_grass[rand(1,2)]"
|
||||
|
||||
/turf/simulated/floor/exoplanet/grass/stalk
|
||||
icon = 'icons/turf/total_floors.dmi'
|
||||
icon = 'icons/turf/flooring/grass.dmi'
|
||||
icon_state = "grass_stalk"
|
||||
color = null
|
||||
has_edge_icon = null
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/turf/simulated/floor/exoplanet/ice
|
||||
name = "ice"
|
||||
icon = 'icons/turf/snow.dmi'
|
||||
icon = 'icons/turf/smooth/snow.dmi'
|
||||
icon_state = "ice"
|
||||
footprint_color = FALSE
|
||||
|
||||
|
||||
@@ -29,6 +29,6 @@
|
||||
|
||||
/turf/simulated/floor/exoplanet/permafrost
|
||||
name = "permafrost"
|
||||
icon = 'icons/turf/snow.dmi'
|
||||
icon = 'icons/turf/flooring/snow.dmi'
|
||||
icon_state = "permafrost"
|
||||
footstep_sound = /singleton/sound_category/asteroid_footstep
|
||||
|
||||
+253
-25
@@ -68,39 +68,183 @@
|
||||
// may be opened to change power cell
|
||||
// three different channels (lighting/equipment/environ) - may each be set to on, off, or auto
|
||||
|
||||
/obj/machinery/power/apc/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/critical
|
||||
is_critical = TRUE
|
||||
|
||||
/obj/machinery/power/apc/critical/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/critical/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/critical/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/critical/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/low
|
||||
cell_type = /obj/item/cell
|
||||
|
||||
/obj/machinery/power/apc/low/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/low/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/low/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/low/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/high
|
||||
cell_type = /obj/item/cell/high
|
||||
|
||||
/obj/machinery/power/apc/high/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/high/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/high/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/high/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/isolation
|
||||
cell_type = /obj/item/cell
|
||||
req_access = null
|
||||
req_one_access = list(access_engine_equip,access_research,access_xenobiology)
|
||||
|
||||
/obj/machinery/power/apc/isolation/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/isolation/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/isolation/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/isolation/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/vault
|
||||
cell_type = /obj/item/cell
|
||||
req_access = list(access_captain)
|
||||
|
||||
/obj/machinery/power/apc/vault/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/vault/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/vault/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/vault/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/intrepid
|
||||
cell_type = /obj/item/cell/high
|
||||
req_access = null
|
||||
req_one_access = list(access_intrepid,access_engine_equip)
|
||||
|
||||
/obj/machinery/power/apc/intrepid/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/intrepid/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/intrepid/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/intrepid/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/canary
|
||||
cell_type = /obj/item/cell/high
|
||||
req_access = null
|
||||
req_one_access = list(access_intrepid,access_engine_equip)
|
||||
|
||||
/obj/machinery/power/apc/canary/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/canary/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/canary/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/canary/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/mining_shuttle
|
||||
cell_type = /obj/item/cell/high
|
||||
req_access = null
|
||||
req_one_access = list(access_mining,access_engine_equip)
|
||||
|
||||
/obj/machinery/power/apc/mining_shuttle/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/mining_shuttle/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/mining_shuttle/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/mining_shuttle/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
// Construction site APC, starts turned off
|
||||
/obj/machinery/power/apc/high/inactive
|
||||
cell_type = /obj/item/cell/high
|
||||
@@ -111,18 +255,99 @@
|
||||
coverlocked = FALSE
|
||||
start_charge = 100
|
||||
|
||||
/obj/machinery/power/apc/canary/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/canary/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/canary/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/canary/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
|
||||
/obj/machinery/power/apc/super
|
||||
cell_type = /obj/item/cell/super
|
||||
|
||||
/obj/machinery/power/apc/super/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/super/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/super/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/super/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/super/critical
|
||||
is_critical = TRUE
|
||||
|
||||
/obj/machinery/power/apc/super/critical/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/super/critical/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/super/critical/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/super/critical/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/hyper
|
||||
cell_type = /obj/item/cell/hyper
|
||||
|
||||
/obj/machinery/power/apc/hyper/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/hyper/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/hyper/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/hyper/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc/empty
|
||||
start_charge = 0
|
||||
|
||||
/obj/machinery/power/apc/empty/north
|
||||
dir = NORTH
|
||||
pixel_y = 22
|
||||
|
||||
/obj/machinery/power/apc/empty/east
|
||||
dir = EAST
|
||||
pixel_x = 12
|
||||
|
||||
/obj/machinery/power/apc/empty/west
|
||||
dir = WEST
|
||||
pixel_x = -12
|
||||
|
||||
/obj/machinery/power/apc/empty/south
|
||||
dir = SOUTH
|
||||
pixel_y = 0
|
||||
|
||||
/obj/machinery/power/apc
|
||||
name = "area power controller"
|
||||
desc = "A control terminal for the area electrical systems."
|
||||
@@ -134,6 +359,7 @@
|
||||
desc_antag = "This can be emagged to unlock it. It will cause the APC to have a blue error screen. \
|
||||
Wires can be pulsed remotely with a signaler attached to it. A powersink will also drain any APCs connected to the same wire the powersink is on."
|
||||
|
||||
icon = 'icons/obj/machinery/power/apc.dmi'
|
||||
icon_state = "apc0"
|
||||
anchored = TRUE
|
||||
use_power = POWER_USE_OFF
|
||||
@@ -220,7 +446,7 @@
|
||||
return FALSE
|
||||
|
||||
if(surge && !emagged)
|
||||
flick("apc-spark", src)
|
||||
flick_overlay("apc-spark", src)
|
||||
emagged = TRUE
|
||||
locked = FALSE
|
||||
update_icon()
|
||||
@@ -235,14 +461,9 @@
|
||||
. = ..(mapload)
|
||||
wires = new(src)
|
||||
|
||||
// offset 28 pixels in direction of dir
|
||||
// this allows the APC to be embedded in a wall, yet still inside an area
|
||||
if (building)
|
||||
set_dir(ndir)
|
||||
|
||||
pixel_x = DIR2PIXEL_X(dir)
|
||||
pixel_y = DIR2PIXEL_Y(dir)
|
||||
|
||||
if (!building)
|
||||
init(mapload)
|
||||
else
|
||||
@@ -254,6 +475,13 @@
|
||||
stat |= MAINT
|
||||
update_icon()
|
||||
|
||||
if(!mapload)
|
||||
set_pixel_offsets()
|
||||
|
||||
/obj/machinery/power/apc/set_pixel_offsets()
|
||||
pixel_x = ((src.dir & (NORTH|SOUTH)) ? 0 : (src.dir == EAST ? 12 : -(12)))
|
||||
pixel_y = ((src.dir & (NORTH|SOUTH)) ? (src.dir == NORTH ? 22 : -(0)) : 0)
|
||||
|
||||
/obj/machinery/power/apc/Destroy()
|
||||
update()
|
||||
area.apc = null
|
||||
@@ -348,28 +576,28 @@
|
||||
status_overlays_lighting.len = 4
|
||||
status_overlays_environ.len = 4
|
||||
|
||||
status_overlays_lock[1] = make_screen_overlay(icon, "apcox-0") // none
|
||||
status_overlays_lock[2] = make_screen_overlay(icon, "apcox-1") // coverlocked/locked
|
||||
status_overlays_lock[3] = make_screen_overlay(icon, "apcox-2") // coverlocked + locked
|
||||
status_overlays_lock[1] = make_screen_overlay(icon, "apc-cover-0") // none
|
||||
status_overlays_lock[2] = make_screen_overlay(icon, "apc-cover-1") // coverlocked/locked
|
||||
status_overlays_lock[3] = make_screen_overlay(icon, "apc-cover-2") // coverlocked + locked
|
||||
|
||||
status_overlays_charging[1] = make_screen_overlay(icon, "apco3-0")
|
||||
status_overlays_charging[2] = make_screen_overlay(icon, "apco3-1")
|
||||
status_overlays_charging[3] = make_screen_overlay(icon, "apco3-2")
|
||||
status_overlays_charging[1] = make_screen_overlay(icon, "apc-charge-0")
|
||||
status_overlays_charging[2] = make_screen_overlay(icon, "apc-charge-1")
|
||||
status_overlays_charging[3] = make_screen_overlay(icon, "apc-charge-2")
|
||||
|
||||
status_overlays_equipment[1] = make_screen_overlay(icon, "apco0-0")
|
||||
status_overlays_equipment[2] = make_screen_overlay(icon, "apco0-1")
|
||||
status_overlays_equipment[3] = make_screen_overlay(icon, "apco0-2")
|
||||
status_overlays_equipment[4] = make_screen_overlay(icon, "apco0-3")
|
||||
status_overlays_equipment[1] = make_screen_overlay(icon, "apcoequip-0")
|
||||
status_overlays_equipment[2] = make_screen_overlay(icon, "apcoequip-1")
|
||||
status_overlays_equipment[3] = make_screen_overlay(icon, "apcoequip-2")
|
||||
status_overlays_equipment[4] = make_screen_overlay(icon, "apcoequip-3")
|
||||
|
||||
status_overlays_lighting[1] = make_screen_overlay(icon, "apco1-0")
|
||||
status_overlays_lighting[2] = make_screen_overlay(icon, "apco1-1")
|
||||
status_overlays_lighting[3] = make_screen_overlay(icon, "apco1-2")
|
||||
status_overlays_lighting[4] = make_screen_overlay(icon, "apco1-3")
|
||||
status_overlays_lighting[1] = make_screen_overlay(icon, "apcolight-0")
|
||||
status_overlays_lighting[2] = make_screen_overlay(icon, "apcolight-1")
|
||||
status_overlays_lighting[3] = make_screen_overlay(icon, "apcolight-2")
|
||||
status_overlays_lighting[4] = make_screen_overlay(icon, "apcolight-3")
|
||||
|
||||
status_overlays_environ[1] = make_screen_overlay(icon, "apco2-0")
|
||||
status_overlays_environ[2] = make_screen_overlay(icon, "apco2-1")
|
||||
status_overlays_environ[3] = make_screen_overlay(icon, "apco2-2")
|
||||
status_overlays_environ[4] = make_screen_overlay(icon, "apco2-3")
|
||||
status_overlays_environ[1] = make_screen_overlay(icon, "apcoenv-0")
|
||||
status_overlays_environ[2] = make_screen_overlay(icon, "apcoenv-1")
|
||||
status_overlays_environ[3] = make_screen_overlay(icon, "apcoenv-2")
|
||||
status_overlays_environ[4] = make_screen_overlay(icon, "apcoenv-3")
|
||||
|
||||
var/update = check_updates() //returns 0 if no need to update icons.
|
||||
// 1 if we need to update the icon_state
|
||||
@@ -816,7 +1044,7 @@
|
||||
else if(stat & (BROKEN|MAINT))
|
||||
to_chat(user, "Nothing happens.")
|
||||
else
|
||||
flick("apc-spark", src)
|
||||
flick_overlay("apc-spark", src)
|
||||
if(do_after(user, 6))
|
||||
if(prob(50))
|
||||
emagged = TRUE
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
// will fit into empty /obj/machinery/light of the corresponding type
|
||||
|
||||
/obj/item/light
|
||||
icon = 'icons/obj/lights.dmi'
|
||||
icon = 'icons/obj/machinery/light.dmi'
|
||||
force = 2
|
||||
throwforce = 5
|
||||
w_class = ITEMSIZE_TINY
|
||||
@@ -39,20 +39,20 @@
|
||||
cut_overlays()
|
||||
switch(status)
|
||||
if(LIGHT_OK)
|
||||
icon_state = "l[lighttype]_attachment"
|
||||
var/image/I = image(icon, "l[lighttype]")
|
||||
icon_state = "[lighttype]_attachment"
|
||||
var/image/I = image(icon, "[lighttype]")
|
||||
I.color = brightness_color
|
||||
add_overlay(I)
|
||||
desc = "A replacement [name]."
|
||||
if(LIGHT_BURNED)
|
||||
icon_state = "l[lighttype]_attachment"
|
||||
var/image/I = image(icon, "l[lighttype]_burned")
|
||||
icon_state = "[lighttype]_attachment"
|
||||
var/image/I = image(icon, "[lighttype]_burned")
|
||||
I.color = brightness_color
|
||||
add_overlay(I)
|
||||
desc = "A burnt-out [name]."
|
||||
if(LIGHT_BROKEN)
|
||||
icon_state = "l[lighttype]_attachment_broken"
|
||||
var/image/I = image(icon, "l[lighttype]_broken")
|
||||
icon_state = "[lighttype]_attachment_broken"
|
||||
var/image/I = image(icon, "[lighttype]_broken")
|
||||
I.color = brightness_color
|
||||
add_overlay(I)
|
||||
desc = "A broken [name]."
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/obj/machinery/light_construct
|
||||
name = "light fixture frame"
|
||||
desc = "A light fixture under construction."
|
||||
icon = 'icons/obj/lights.dmi'
|
||||
icon = 'icons/obj/machinery/light.dmi'
|
||||
icon_state = "tube-construct-stage1"
|
||||
anchored = TRUE
|
||||
layer = 5
|
||||
@@ -185,7 +185,7 @@
|
||||
/obj/machinery/light_construct/small
|
||||
name = "small light fixture frame"
|
||||
desc = "A small light fixture under construction."
|
||||
icon = 'icons/obj/lights.dmi'
|
||||
icon = 'icons/obj/machinery/light.dmi'
|
||||
icon_state = "bulb-construct-stage1"
|
||||
anchored = TRUE
|
||||
layer = 5
|
||||
@@ -196,7 +196,7 @@
|
||||
/obj/machinery/light_construct/spot
|
||||
name = "spotlight fixture frame"
|
||||
desc = "A spotlight fixture under construction."
|
||||
icon = 'icons/obj/lights.dmi'
|
||||
icon = 'icons/obj/machinery/light.dmi'
|
||||
icon_state = "slight-construct-stage1"
|
||||
anchored = TRUE
|
||||
layer = 5
|
||||
@@ -207,7 +207,7 @@
|
||||
/obj/machinery/light_construct/small/floor
|
||||
name = "small floor light fixture frame"
|
||||
desc = "A small floor light fixture under construction."
|
||||
icon = 'icons/obj/lights.dmi'
|
||||
icon = 'icons/obj/machinery/light.dmi'
|
||||
icon_state = "floor-construct-stage1"
|
||||
anchored = TRUE
|
||||
layer = 2.5
|
||||
@@ -218,7 +218,7 @@
|
||||
/obj/machinery/light_construct/floor
|
||||
name = "floor light fixture frame"
|
||||
desc = "A floor light fixture under construction."
|
||||
icon = 'icons/obj/lights.dmi'
|
||||
icon = 'icons/obj/machinery/light.dmi'
|
||||
icon_state = "floortube-construct-stage1"
|
||||
anchored = TRUE
|
||||
layer = 2.5
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
// the standard tube light fixture
|
||||
/obj/machinery/light
|
||||
name = "light fixture"
|
||||
icon = 'icons/obj/lights.dmi'
|
||||
var/base_state = "tube"
|
||||
icon_state = "tube_example"
|
||||
icon = 'icons/obj/machinery/light.dmi'
|
||||
var/base_state = "tube" // base description and icon_state
|
||||
icon_state = "tube_empty"
|
||||
desc = "A lighting fixture."
|
||||
desc_info = "Use grab intent when interacting with a working light to take it out of its fixture."
|
||||
anchored = TRUE
|
||||
@@ -83,8 +83,7 @@
|
||||
// the smaller bulb light fixture
|
||||
|
||||
/obj/machinery/light/small
|
||||
name = "small light fixture"
|
||||
icon_state = "bulb_example"
|
||||
icon_state = "bulb_empty"
|
||||
base_state = "bulb"
|
||||
fitting = "bulb"
|
||||
brightness_range = 5
|
||||
@@ -137,8 +136,7 @@
|
||||
|
||||
/obj/machinery/light/spot
|
||||
name = "spotlight fixture"
|
||||
icon_state = "slight_example"
|
||||
base_state = "slight"
|
||||
icon_state = "tube_empty"
|
||||
desc = "An extremely powerful lighting fixture."
|
||||
fitting = "large tube"
|
||||
light_type = /obj/item/light/tube/large
|
||||
@@ -178,6 +176,7 @@
|
||||
// create a new lighting fixture
|
||||
/obj/machinery/light/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
if (!has_power())
|
||||
stat |= NOPOWER
|
||||
if (start_with_cell && !no_emergency)
|
||||
@@ -199,11 +198,20 @@
|
||||
brightness_color = pick(randomized_colors)
|
||||
default_color = brightness_color // We need a different var so the new color doesn't get wiped away. Initial() wouldn't work since brightness_color is overridden.
|
||||
update(0)
|
||||
set_pixel_offsets()
|
||||
|
||||
/obj/machinery/light/Destroy()
|
||||
QDEL_NULL(cell)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/light/set_pixel_offsets()
|
||||
pixel_x = dir & (NORTH|SOUTH) ? 0 : (dir == EAST ? 12 : -12)
|
||||
pixel_y = dir & (NORTH|SOUTH) ? (dir == NORTH ? DEFAULT_WALL_OFFSET : 0) : 0
|
||||
|
||||
/obj/machinery/light/floor/set_pixel_offsets()
|
||||
pixel_x = pixel_x
|
||||
pixel_y = pixel_y
|
||||
|
||||
/obj/machinery/light/update_icon()
|
||||
cut_overlays()
|
||||
if ((status == LIGHT_EMPTY) || !fitting_has_empty_icon)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
flags = PROXMOVE
|
||||
var/obj/machinery/field_generator/FG1 = null
|
||||
var/obj/machinery/field_generator/FG2 = null
|
||||
var/hasShocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second.
|
||||
var/has_shocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second.
|
||||
|
||||
/obj/machinery/containment_field/Destroy()
|
||||
if(FG1 && !FG1.clean_up)
|
||||
@@ -43,13 +43,13 @@
|
||||
|
||||
|
||||
/obj/machinery/containment_field/shock(mob/living/user as mob)
|
||||
if(hasShocked)
|
||||
if(has_shocked)
|
||||
return 0
|
||||
if(!FG1 || !FG2)
|
||||
qdel(src)
|
||||
return 0
|
||||
if(isliving(user))
|
||||
hasShocked = 1
|
||||
has_shocked = 1
|
||||
var/shock_damage = min(rand(30,40),rand(30,40))
|
||||
user.electrocute_act(shock_damage, src)
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
|
||||
sleep(20)
|
||||
|
||||
hasShocked = 0
|
||||
has_shocked = 0
|
||||
return
|
||||
|
||||
/obj/machinery/containment_field/proc/set_master(var/master1,var/master2)
|
||||
|
||||
@@ -269,7 +269,7 @@
|
||||
/obj/machinery/power/solar_control
|
||||
name = "solar panel control"
|
||||
desc = "A controller for solar panel arrays."
|
||||
icon = 'icons/obj/modular_console.dmi'
|
||||
icon = 'icons/obj/machinery/modular_console.dmi'
|
||||
icon_state = "computer"
|
||||
light_color = LIGHT_COLOR_YELLOW
|
||||
anchored = 1
|
||||
|
||||
@@ -76,8 +76,7 @@
|
||||
// Tracker Electronic
|
||||
|
||||
/obj/item/tracker_electronics
|
||||
|
||||
name = "tracker electronics"
|
||||
icon = 'icons/obj/doors/door_assembly.dmi'
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "door_electronics"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
var/table_mat
|
||||
var/table_reinf
|
||||
var/no_cargo
|
||||
material_alteration = MATERIAL_ALTERATION_NAME || MATERIAL_ALTERATION_DESC
|
||||
build_amt = 1
|
||||
|
||||
/obj/structure/table/Initialize()
|
||||
@@ -14,14 +15,17 @@
|
||||
. = ..()
|
||||
|
||||
/obj/structure/table/standard
|
||||
icon_state = "plain_preview"
|
||||
icon = 'icons/obj/structure/tables/steel_table.dmi'
|
||||
icon_state = "steel_preview"
|
||||
table_mat = DEFAULT_TABLE_MATERIAL
|
||||
|
||||
/obj/structure/table/steel
|
||||
icon_state = "plain_preview"
|
||||
icon = 'icons/obj/structure/tables/steel_table.dmi'
|
||||
icon_state = "steel_preview"
|
||||
table_mat = DEFAULT_WALL_MATERIAL
|
||||
|
||||
/obj/structure/table/stone
|
||||
icon = 'icons/obj/structure/tables/marble_table.dmi'
|
||||
icon_state = "stone_preview"
|
||||
table_mat = MATERIAL_SANDSTONE
|
||||
|
||||
@@ -29,47 +33,58 @@
|
||||
table_mat = MATERIAL_MARBLE
|
||||
|
||||
/obj/structure/table/reinforced
|
||||
icon = 'icons/obj/structure/tables/reinforced_table.dmi'
|
||||
icon_state = "reinf_preview"
|
||||
table_mat = DEFAULT_TABLE_MATERIAL
|
||||
table_reinf = DEFAULT_WALL_MATERIAL
|
||||
|
||||
/obj/structure/table/reinforced/steel
|
||||
icon_state = "reinf_preview"
|
||||
table_mat = DEFAULT_WALL_MATERIAL
|
||||
|
||||
/obj/structure/table/reinforced/wood
|
||||
icon = 'icons/obj/structure/tables/wood_table.dmi'
|
||||
icon_state = "wood_preview"
|
||||
table_mat = MATERIAL_WOOD
|
||||
table_reinf = MATERIAL_WOOD
|
||||
material_alteration = MATERIAL_ALTERATION_ALL
|
||||
|
||||
/obj/structure/table/reinforced/glass
|
||||
icon = 'icons/obj/structure/tables/rglass_table.dmi'
|
||||
icon_state = "rglass_preview"
|
||||
table_mat = MATERIAL_GLASS_REINFORCED
|
||||
table_reinf = MATERIAL_GLASS_REINFORCED
|
||||
alpha = 77 // 0.3 * 255
|
||||
|
||||
/obj/structure/table/wood
|
||||
icon_state = "plain_preview"
|
||||
icon = 'icons/obj/structure/tables/wood_table.dmi'
|
||||
icon_state = "wood_preview"
|
||||
table_mat = MATERIAL_WOOD
|
||||
material_alteration = MATERIAL_ALTERATION_ALL
|
||||
|
||||
/obj/structure/table/wood/gamblingtable
|
||||
icon_state = "gamble_preview"
|
||||
carpeted = 1
|
||||
|
||||
/obj/structure/table/glass
|
||||
icon_state = "plain_preview"
|
||||
icon = 'icons/obj/structure/tables/glass_table.dmi'
|
||||
icon_state = "glass_preview"
|
||||
table_mat = MATERIAL_GLASS
|
||||
alpha = 77 // 0.3 * 255
|
||||
|
||||
/obj/structure/table/skrell
|
||||
icon = 'icons/obj/structure/tables/skrell_table.dmi'
|
||||
icon_state = "skrell_preview"
|
||||
table_mat = MATERIAL_SHUTTLE_SKRELL
|
||||
|
||||
/obj/structure/table/diona
|
||||
icon = 'icons/obj/structure/tables/diona_table.dmi'
|
||||
icon_state = "biomass_preview"
|
||||
table_mat = MATERIAL_DIONA
|
||||
|
||||
/obj/structure/table/holotable
|
||||
icon_state = "holo_preview"
|
||||
icon = 'icons/obj/structure/tables/steel_table.dmi'
|
||||
icon_state = "steel_preview"
|
||||
table_mat = MATERIAL_PLASTIC_HOLO
|
||||
|
||||
/obj/structure/table/holotable/holowood
|
||||
icon = 'icons/obj/structure/tables/wood_table.dmi'
|
||||
icon_state = "wood_preview"
|
||||
table_mat = MATERIAL_WOOD_HOLO
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/obj/structure/table
|
||||
name = "table frame"
|
||||
icon = 'icons/obj/tables.dmi'
|
||||
icon = 'icons/obj/structure/tables/table.dmi'
|
||||
icon_state = "frame"
|
||||
desc = "It's a table, for putting things on. Or standing on, if you really want to."
|
||||
density = 1
|
||||
@@ -212,7 +212,8 @@
|
||||
|
||||
/obj/structure/table/proc/update_desc()
|
||||
if(material)
|
||||
name = "[material.display_name] table"
|
||||
if(material_alteration & MATERIAL_ALTERATION_NAME)
|
||||
name = "[material.display_name] table"
|
||||
else
|
||||
name = "table frame"
|
||||
|
||||
@@ -330,8 +331,7 @@
|
||||
if(material)
|
||||
for(var/i = 1 to 4)
|
||||
I = image(icon, "[material.icon_base]_[connections[i]]", dir = 1<<(i-1))
|
||||
if(material.icon_colour) I.color = material.icon_colour
|
||||
I.alpha = 255 * material.opacity
|
||||
if(material_alteration & MATERIAL_ALTERATION_COLOR) I.color = material.icon_colour
|
||||
add_overlay(I)
|
||||
|
||||
// Reinforcements
|
||||
@@ -339,7 +339,6 @@
|
||||
for(var/i = 1 to 4)
|
||||
I = image(icon, "[reinforced.icon_reinf]_[connections[i]]", dir = 1<<(i-1))
|
||||
I.color = reinforced.icon_colour
|
||||
I.alpha = 255 * reinforced.opacity
|
||||
add_overlay(I)
|
||||
|
||||
if(carpeted)
|
||||
@@ -367,16 +366,15 @@
|
||||
if(material)
|
||||
var/image/I = image(icon, "[material.icon_base]_flip[type]")
|
||||
I.color = material.icon_colour
|
||||
I.alpha = 255 * material.opacity
|
||||
add_overlay(I)
|
||||
name = "[material.display_name] table"
|
||||
if(material_alteration & MATERIAL_ALTERATION_NAME)
|
||||
name = "[material.display_name] table"
|
||||
else
|
||||
name = "table frame"
|
||||
|
||||
if(reinforced)
|
||||
var/image/I = image(icon, "[reinforced.icon_reinf]_flip[type]")
|
||||
I.color = reinforced.icon_colour
|
||||
I.alpha = 255 * reinforced.opacity
|
||||
add_overlay(I)
|
||||
|
||||
if(carpeted)
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
/obj/machinery/door/airlock/lift
|
||||
name = "Elevator Door"
|
||||
name = "elevator door"
|
||||
desc = "Ding."
|
||||
airlock_type = "Lift"
|
||||
door_color = COLOR_GRAY20
|
||||
door_frame_color = COLOR_GRAY20
|
||||
req_access = list(access_maint_tunnels)
|
||||
glass = TRUE
|
||||
opacity = FALSE
|
||||
autoclose = FALSE
|
||||
glass = TRUE
|
||||
icon = 'icons/obj/doors/doorlift.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_lift
|
||||
hashatch = FALSE
|
||||
panel_visible_while_open = TRUE
|
||||
insecure = FALSE
|
||||
|
||||
Reference in New Issue
Block a user