This commit is contained in:
Putnam
2021-06-11 16:28:12 -07:00
179 changed files with 2371 additions and 709 deletions
+10 -13
View File
@@ -209,7 +209,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Generic Maintenance"
// ambience_index = AMBIENCE_MAINT
ambientsounds = MAINTENANCE
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
// airlock_wires = /datum/wires/airlock/maint
sound_environment = SOUND_AREA_TUNNEL_ENCLOSED
@@ -294,7 +294,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/maintenance/department/science/xenobiology
name = "Xenobiology Maintenance"
icon_state = "xenomaint"
area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | XENOBIOLOGY_COMPATIBLE
area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | XENOBIOLOGY_COMPATIBLE | CULT_PERMITTED
//Maintenance - Generic
@@ -598,11 +598,11 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/commons
name = "Crew Quarters"
sound_environment = SOUND_AREA_STANDARD_STATION
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/commons/dorms
name = "Dormitories"
icon_state = "dorms"
area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA
/area/commons/dorms/barracks
name = "Sleep Barracks"
@@ -899,7 +899,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
// mood_bonus = 5
// mood_message = "<span class='nicegreen'>I love being in the library!</span>\n"
// mood_trait = TRAIT_INTROVERT
flags_1 = CULT_PERMITTED_1
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
sound_environment = SOUND_AREA_LARGE_SOFTFLOOR
/area/service/library/lounge
@@ -926,7 +926,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/service/library/abandoned
name = "Abandoned Library"
icon_state = "abandoned_library"
flags_1 = CULT_PERMITTED_1
nightshift_public_area = NIGHTSHIFT_AREA_NONE
/area/service/chapel
@@ -973,8 +972,8 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/service/janitor
name = "Custodial Closet"
icon_state = "janitor"
flags_1 = CULT_PERMITTED_1
sound_environment = SOUND_AREA_SMALL_ENCLOSED
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/service/janitor/aux
name = "Auxiliary Custodial Closet"
@@ -1027,7 +1026,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engineering/atmos
name = "Atmospherics"
icon_state = "atmos"
flags_1 = CULT_PERMITTED_1
/area/engineering/atmos/upper
name = "Upper Atmospherics"
@@ -1035,7 +1033,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engineering/atmospherics_engine
name = "Atmospherics Engine"
icon_state = "atmos_engine"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/engineering/lobby
name = "Engineering Lobby"
@@ -1044,7 +1042,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engineering/supermatter
name = "Supermatter Engine"
icon_state = "engine_sm"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
sound_environment = SOUND_AREA_SMALL_ENCLOSED
/area/engineering/break_room
@@ -1084,7 +1082,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/engineering/storage/tcomms
name = "Telecomms Storage"
icon_state = "tcom"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
clockwork_warp_allowed = FALSE
//Engineering - Construction
@@ -1314,7 +1312,6 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/medical/virology
name = "Virology"
icon_state = "virology"
flags_1 = CULT_PERMITTED_1
/area/medical/morgue
name = "Morgue"
@@ -1608,7 +1605,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/science/test_area
name = "Toxins Test Area"
icon_state = "tox_test"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/science/mixing
name = "Toxins Mixing Lab"
@@ -1617,7 +1614,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/science/mixing/chamber
name = "Toxins Mixing Chamber"
icon_state = "tox_mix_chamber"
area_flags = BLOBS_ALLOWED | UNIQUE_AREA
area_flags = BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
/area/science/misc_lab
name = "Testing Lab"
+1 -1
View File
@@ -13,7 +13,7 @@
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
invisibility = INVISIBILITY_LIGHTING
var/area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA
var/area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | CULT_PERMITTED
var/fire = null
///Whether there is an atmos alarm in this area
+1 -1
View File
@@ -11,7 +11,7 @@
dynamic_lighting = DYNAMIC_LIGHTING_FORCED
requires_power = FALSE
has_gravity = STANDARD_GRAVITY
area_flags = VALID_TERRITORY | UNIQUE_AREA | NOTELEPORT
area_flags = UNIQUE_AREA | NOTELEPORT
flags_1 = NONE
/area/centcom/control
+4 -4
View File
@@ -3,7 +3,6 @@
icon_state = "Holodeck"
dynamic_lighting = DYNAMIC_LIGHTING_DISABLED
flags_1 = NONE
area_flags = VALID_TERRITORY | UNIQUE_AREA
sound_environment = SOUND_ENVIRONMENT_PADDED_CELL
var/obj/machinery/computer/holodeck/linked
@@ -87,9 +86,6 @@
/area/holodeck/rec_center/lounge
name = "Holodeck - Lounge"
/area/holodeck/rec_center/medical
name = "Holodeck - Emergency Medical"
/area/holodeck/rec_center/pet_lounge
name = "Holodeck - Pet Park"
@@ -128,6 +124,10 @@
name = "Holodeck - Holdout Bunker"
restricted = 1
/area/holodeck/rec_center/medical
name = "Holodeck - Emergency Medical"
restricted = 1
/area/holodeck/rec_center/anthophila
name = "Holodeck - Anthophila"
restricted = 1
+2 -2
View File
@@ -157,10 +157,10 @@
/area/shuttle/escape
name = "Emergency Shuttle"
area_flags = BLOBS_ALLOWED
area_flags = BLOBS_ALLOWED | CULT_PERMITTED
// area_limited_icon_smoothing = /area/shuttle/escape
canSmoothWithAreas = /area/shuttle/escape
flags_1 = CAN_BE_DIRTY_1 // | CULT_PERMITTED_1
flags_1 = CAN_BE_DIRTY_1
/area/shuttle/escape/backup
name = "Backup Emergency Shuttle"
+1 -1
View File
@@ -579,7 +579,7 @@
//TODO: Better floating
/atom/movable/proc/float(on, throw_override)
if(throwing || !throw_override)
if(throwing && !throw_override)
return
if(on && !(movement_type & FLOATING))
animate(src, pixel_y = 2, time = 10, loop = -1, flags = ANIMATION_RELATIVE)
+13
View File
@@ -18,6 +18,8 @@ GLOBAL_LIST_INIT(meteorsB, list(/obj/effect/meteor/meaty=5, /obj/effect/meteor/m
GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
GLOBAL_LIST_INIT(meteorsCat, list(/obj/effect/meteor/cat)) //for cat meteors
///////////////////////////////
//Meteor spawning global procs
@@ -345,6 +347,17 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
..()
if(prob(20))
explosion(src.loc,2,4,6,8)
/obj/effect/meteor/cat
name = "space cat"
icon_state = "catmeteor"
desc = "Meow."
hits = 1
heavy = FALSE
meteorsound = 'sound/effects/meow1.ogg'
meteordrop = list(/mob/living/simple_animal/pet/cat/space)
threat = 0
dropamt = 1
//////////////////////////
//Spookoween meteors
+1 -1
View File
@@ -688,7 +688,7 @@
else
. += "It looks very robust."
if(hasSiliconAccessInArea(user) && (!stat & BROKEN))
if(hasSiliconAccessInArea(user) && !(stat & BROKEN))
. += "<span class='notice'>Shift-click [src] to [ density ? "open" : "close"] it.</span>"
. += "<span class='notice'>Ctrl-click [src] to [ locked ? "raise" : "drop"] its bolts.</span>"
. += "<span class='notice'>Alt-click [src] to [ secondsElectrified ? "un-electrify" : "permanently electrify"] it.</span>"
@@ -341,6 +341,9 @@
return TRUE
. = ..()
/obj/structure/foamedmetal/resin/BlockSuperconductivity()
return TRUE
#undef ALUMINUM_FOAM
#undef IRON_FOAM
#undef RESIN_FOAM
@@ -378,6 +378,12 @@
icon_state = "shieldsparkles"
duration = 6
/obj/effect/temp_visual/impact_effect/judgement_cut
name = "judgement cut impact"
icon = 'icons/effects/effects.dmi'
icon_state = "impact_judgement"
duration = 6
/obj/effect/temp_visual/heart
name = "heart"
icon = 'icons/mob/animal.dmi'
@@ -535,3 +541,7 @@
/obj/effect/temp_visual/slime_puddle/reverse
icon_state = "from_puddle"
duration = 7
/obj/effect/temp_visual/gib_animation
icon = 'icons/mob/mob.dmi'
duration = 15
@@ -77,8 +77,11 @@
return
if(!iscarbon(target))
return
if(!(target?.client?.prefs?.cit_toggles & MEDIHOUND_SLEEPER))
to_chat(user, "<span class='warning'>The user has opted out of the use of your [src].")
return
var/voracious = TRUE
if(!target.client || !(target.client.prefs.cit_toggles & MEDIHOUND_SLEEPER) || !hound.client || !(hound.client.prefs.cit_toggles & MEDIHOUND_SLEEPER))
if(!hound.client || !(hound.client.prefs.cit_toggles & MEDIHOUND_SLEEPER))
voracious = FALSE
if(target.buckled)
to_chat(user, "<span class='warning'>The user is buckled and can not be put into your [src].</span>")
+2 -2
View File
@@ -381,8 +381,8 @@ GENETICS SCANNER
else if (S.mutantstomach != initial(S.mutantstomach))
mutant = TRUE
msg += "\t<span class='info'>Reported Species: [H.dna.custom_species ? H.dna.custom_species : S.name]</span>\n"
msg += "\t<span class='info'>Base Species: [S.name]</span>\n"
msg += "\t<span class='info'>Reported Species: [H.spec_trait_examine_font()][H.dna.custom_species ? H.dna.custom_species : S.name]</font></span>\n"
msg += "\t<span class='info'>Base Species: [H.spec_trait_examine_font()][S.name]</font></span>\n"
if(mutant)
msg += "\t<span class='info'>Subject has mutations present.</span>\n"
msg += "\t<span class='info'>Body temperature: [round(M.bodytemperature-T0C,0.1)] &deg;C ([round(M.bodytemperature*1.8-459.67,0.1)] &deg;F)</span>\n"
+1 -1
View File
@@ -383,7 +383,7 @@
. = ..()
/obj/item/stack/medical/mesh/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags)
if(!is_open & user.get_inactive_held_item() == src)
if(!is_open && (user.get_inactive_held_item() == src))
to_chat(user, "<span class='warning'>You need to open [src] first.</span>")
return
. = ..()
@@ -593,7 +593,7 @@ GLOBAL_LIST_INIT(runed_metal_recipes, list ( \
return
var/turf/T = get_turf(user) //we may have moved. adjust as needed...
var/area/A = get_area(user)
if((!is_station_level(T.z) && !is_mining_level(T.z)) || (A && !(A.flags_1 & CULT_PERMITTED_1)))
if((!is_station_level(T.z) && !is_mining_level(T.z)) || !(A?.area_flags & CULT_PERMITTED))
to_chat(user, "<span class='warning'>The veil is not weak enough here.</span>")
return FALSE
return ..()
+12
View File
@@ -73,3 +73,15 @@
name = "wumborian fugu den"
desc = "A den housing a nest of wumborian fugus, how do they all even fit in there?"
mob_types = list(/mob/living/simple_animal/hostile/asteroid/fugu)
/obj/structure/spawner/clown
name = "Laughing Larry"
desc = "A laughing, jovial figure. Something seems stuck in his throat."
icon_state = "clownbeacon"
icon = 'icons/obj/device.dmi'
max_integrity = 200
max_mobs = 15
spawn_time = 150
mob_types = list(/mob/living/simple_animal/hostile/retaliate/clown, /mob/living/simple_animal/hostile/retaliate/clown/fleshclown, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk, /mob/living/simple_animal/hostile/retaliate/clown/longface, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk/chlown, /mob/living/simple_animal/hostile/retaliate/clown/clownhulk/honcmunculus, /mob/living/simple_animal/hostile/retaliate/clown/mutant/blob)
spawn_text = "climbs out of"
faction = list("clown")
+1 -1
View File
@@ -127,7 +127,7 @@
to_chat(user, "<span class='danger'>Throwing [pushed_mob] onto the table might hurt them!</span>")
return
var/added_passtable = FALSE
if(!pushed_mob.pass_flags & PASSTABLE)
if(!(pushed_mob.pass_flags & PASSTABLE))
added_passtable = TRUE
pushed_mob.pass_flags |= PASSTABLE
pushed_mob.Move(src.loc)
+97 -17
View File
@@ -21,6 +21,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
var/ini_dir = null
var/state = WINDOW_OUT_OF_FRAME
var/reinf = FALSE
var/extra_reinforced = FALSE
var/heat_resistance = 800
var/decon_speed = 30
var/wtype = "glass"
@@ -65,6 +66,20 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
. += "<span class='notice'>The window is out of the frame, but could be <i>pried</i> in. It is <b>screwed</b> to the floor.</span>"
else if(!anchored)
. += "<span class='notice'>The window is <i>unscrewed</i> from the floor, and could be deconstructed by <b>wrenching</b>.</span>"
switch(state)
if(PRWINDOW_SECURE)
if(extra_reinforced)
. += "It's been screwed in with one way screws, you'd need to <b>heat their solder cover</b> to have any chance of backing them out."
else
. += "It's been screwed in with solid screws, you'd need to <b>screw them</b> out to unsecure the window."
if(PRWINDOW_BOLTS_HEATED)
. += "The solder cover melts away, and you'll likely be able to <b>unscrew them</b> now."
if(PRWINDOW_BOLTS_OUT)
. += "The screws have been removed, revealing a small gap you could fit a <b>prying tool</b> in."
if(PRWINDOW_POPPED)
. += "The main plate of the window has popped out of the frame, exposing some bars that look like they can be <b>cut</b>."
if(PRWINDOW_BARS_CUT)
. += "The main pane can be easily moved out of the way to reveal some <b>bolts</b> holding the frame in."
else
if(anchored)
. += "<span class='notice'>The window is <b>screwed</b> to the floor.</span>"
@@ -75,8 +90,13 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
. = ..()
if(direct)
setDir(direct)
if(reinf && anchored)
if(extra_reinforced && anchored)
state = PRWINDOW_SECURE
else if(reinf && anchored)
state = WINDOW_SCREWED_TO_FRAME
if(mapload && electrochromatic_id && electrochromatic_id[1] == "!")
electrochromatic_id = SSmapping.get_obfuscated_id(electrochromatic_id)
@@ -230,29 +250,26 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
make_electrochromatic(K.id)
qdel(K)
if(!(flags_1&NODECONSTRUCT_1))
if(!(flags_1 & NODECONSTRUCT_1) && !(state >= PRWINDOW_FRAME_BOLTED))
if(I.tool_behaviour == TOOL_SCREWDRIVER)
I.play_tool_sound(src, 75)
if(reinf)
if(state == WINDOW_SCREWED_TO_FRAME || state == WINDOW_IN_FRAME)
to_chat(user, "<span class='notice'>You begin to [state == WINDOW_SCREWED_TO_FRAME ? "unscrew the window from":"screw the window to"] the frame...</span>")
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
if(state == WINDOW_SCREWED_TO_FRAME || state == WINDOW_IN_FRAME && anchored)
to_chat(user, "<span class='notice'>You begin to [state == WINDOW_SCREWED_TO_FRAME ? "unscrew the window from":"screw the window to"] the frame...</span>")
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
if(extra_reinforced && state == WINDOW_IN_FRAME)
state = PRWINDOW_SECURE
else
state = (state == WINDOW_IN_FRAME ? WINDOW_SCREWED_TO_FRAME : WINDOW_IN_FRAME)
to_chat(user, "<span class='notice'>You [state == WINDOW_IN_FRAME ? "unfasten the window from":"fasten the window to"] the frame.</span>")
else if(state == WINDOW_OUT_OF_FRAME)
to_chat(user, "<span class='notice'>You begin to [anchored ? "unscrew the frame from":"screw the frame to"] the floor...</span>")
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
setAnchored(!anchored)
to_chat(user, "<span class='notice'>You [anchored ? "fasten the frame to":"unfasten the frame from"] the floor.</span>")
else //if we're not reinforced, we don't need to check or update state
to_chat(user, "<span class='notice'>You begin to [anchored ? "unscrew the window from":"screw the window to"] the floor...</span>")
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_anchored, anchored)))
to_chat(user, "<span class='notice'>You [state == WINDOW_IN_FRAME ? "unfasten the window from":"fasten the window to"] the frame.</span>")
else if(state == WINDOW_OUT_OF_FRAME)
to_chat(user, "<span class='notice'>You begin to [anchored ? "unscrew the frame from":"screw the frame to"] the floor...</span>")
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
setAnchored(!anchored)
to_chat(user, "<span class='notice'>You [anchored ? "fasten the window to":"unfasten the window from"] the floor.</span>")
to_chat(user, "<span class='notice'>You [anchored ? "fasten the frame to":"unfasten the frame from"] the floor.</span>")
return
else if(I.tool_behaviour == TOOL_CROWBAR && reinf && (state == WINDOW_OUT_OF_FRAME || state == WINDOW_IN_FRAME))
else if(I.tool_behaviour == TOOL_CROWBAR && reinf && (state == WINDOW_OUT_OF_FRAME || state == WINDOW_IN_FRAME) && anchored)
to_chat(user, "<span class='notice'>You begin to lever the window [state == WINDOW_OUT_OF_FRAME ? "into":"out of"] the frame...</span>")
I.play_tool_sound(src, 75)
if(I.use_tool(src, user, decon_speed, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
@@ -270,8 +287,67 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
to_chat(user, "<span class='notice'>You successfully disassemble [src].</span>")
qdel(src)
return
if(!reinf || !anchored)
return ..()
switch(state)
if(PRWINDOW_SECURE)
if(extra_reinforced)
if(I.tool_behaviour == TOOL_WELDER && user.a_intent == INTENT_HARM)
user.visible_message("<span class='notice'>[user] holds \the [I] to the security screws on \the [src]...</span>",
"<span class='notice'>You begin heating the security screws on \the [src]...</span>")
if(I.use_tool(src, user, 180, volume = 100))
to_chat(user, "<span class='notice'>The security bolts are glowing white hot and look ready to be removed.</span>")
state = PRWINDOW_BOLTS_HEATED
addtimer(CALLBACK(src, .proc/cool_bolts), 300)
return
else
if(I.tool_behaviour == TOOL_SCREWDRIVER)
user.visible_message("<span class='notice'>[user] digs into the screws and starts removing them...</span>",
"<span class='notice'>You dig into the screws hard and they start turning...</span>")
if(I.use_tool(src, user, 80, volume = 50))
state = PRWINDOW_BOLTS_OUT
to_chat(user, "<span class='notice'>The screws come out, and a gap forms around the edge of the pane.</span>")
return
if(PRWINDOW_BOLTS_HEATED)
if(I.tool_behaviour == TOOL_SCREWDRIVER)
user.visible_message("<span class='notice'>[user] digs into the security screws and starts removing them...</span>",
"<span class='notice'>You dig into the screws hard and they start turning...</span>")
if(I.use_tool(src, user, 80, volume = 50))
state = PRWINDOW_BOLTS_OUT
to_chat(user, "<span class='notice'>The screws come out, and a gap forms around the edge of the pane.</span>")
return
if(PRWINDOW_BOLTS_OUT)
if(I.tool_behaviour == TOOL_CROWBAR)
user.visible_message("<span class='notice'>[user] wedges \the [I] into the gap in the frame and starts prying...</span>",
"<span class='notice'>You wedge \the [I] into the gap in the frame and start prying...</span>")
if(I.use_tool(src, user, 50, volume = 50))
state = PRWINDOW_POPPED
to_chat(user, "<span class='notice'>The panel pops out of the frame, exposing some thin metal bars that looks like they can be cut.</span>")
return
if(PRWINDOW_POPPED)
if(I.tool_behaviour == TOOL_WIRECUTTER)
user.visible_message("<span class='notice'>[user] starts cutting the exposed bars on \the [src]...</span>",
"<span class='notice'>You start cutting the exposed bars on \the [src]</span>")
if(I.use_tool(src, user, 30, volume = 50))
state = PRWINDOW_BARS_CUT
to_chat(user, "<span class='notice'>The panels falls out of the way exposing the frame bolts.</span>")
return
if(PRWINDOW_BARS_CUT)
if(I.tool_behaviour == TOOL_WRENCH)
user.visible_message("<span class='notice'>[user] starts unfastening \the [src] from the frame...</span>",
"<span class='notice'>You start unfastening the bolts from the frame...</span>")
if(I.use_tool(src, user, 50, volume = 50))
to_chat(user, "<span class='notice'>You unscrew the bolts from the frame and the window pops loose.</span>")
state = WINDOW_OUT_OF_FRAME
setAnchored(FALSE)
return
return ..()
/obj/structure/window/proc/cool_bolts()
if(state == PRWINDOW_BOLTS_HEATED)
state = PRWINDOW_SECURE
visible_message("<span class='notice'>The bolts on \the [src] look like they've cooled off...</span>")
/obj/structure/window/setAnchored(anchorvalue)
..()
air_update_turf(TRUE)
@@ -577,6 +653,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
desc = "A window made out of a plasma-silicate alloy and a rod matrix. It looks hopelessly tough to break and is most likely nigh fireproof."
icon_state = "plasmarwindow"
reinf = TRUE
extra_reinforced = TRUE
heat_resistance = 50000
armor = list("melee" = 85, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100)
max_integrity = 500
@@ -642,6 +719,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
icon = 'icons/obj/smooth_structures/rplasma_window.dmi'
icon_state = "rplasmawindow"
dir = FULLTILE_WINDOW_DIR
state = PRWINDOW_SECURE
max_integrity = 1000
fulltile = TRUE
flags_1 = PREVENT_CLICK_UNDER_1
@@ -726,6 +804,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
fulltile = TRUE
flags_1 = PREVENT_CLICK_UNDER_1
reinf = TRUE
extra_reinforced = TRUE
heat_resistance = 1600
armor = list("melee" = 50, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 100)
smooth = SMOOTH_TRUE
@@ -758,6 +837,7 @@ GLOBAL_LIST_EMPTY(electrochromatic_window_lookup)
wave_explosion_block = EXPLOSION_BLOCK_BOROSILICATE_WINDOW
wave_explosion_multiply = EXPLOSION_DAMPEN_BOROSILICATE_WINDOW
decon_speed = 40
extra_reinforced = TRUE
glass_type = /obj/item/stack/tile/brass
glass_amount = 1
reinf = FALSE