|
|
|
@@ -27,6 +27,8 @@
|
|
|
|
|
var/real_explosion_block //ignore this, just use explosion_block
|
|
|
|
|
var/breaksound = "shatter"
|
|
|
|
|
var/hitsound = 'sound/effects/Glasshit.ogg'
|
|
|
|
|
/// Used to restore colours from polarised glass
|
|
|
|
|
var/old_color
|
|
|
|
|
|
|
|
|
|
/obj/structure/window/examine(mob/user)
|
|
|
|
|
. = ..()
|
|
|
|
@@ -69,6 +71,17 @@
|
|
|
|
|
|
|
|
|
|
air_update_turf(TRUE)
|
|
|
|
|
|
|
|
|
|
/obj/structure/window/proc/toggle_polarization()
|
|
|
|
|
if(opacity)
|
|
|
|
|
if(!old_color)
|
|
|
|
|
old_color = "#FFFFFF"
|
|
|
|
|
animate(src, color = old_color, time = 0.5 SECONDS)
|
|
|
|
|
set_opacity(FALSE)
|
|
|
|
|
else
|
|
|
|
|
old_color = color
|
|
|
|
|
animate(src, color = "#222222", time = 0.5 SECONDS)
|
|
|
|
|
set_opacity(TRUE)
|
|
|
|
|
|
|
|
|
|
/obj/structure/window/narsie_act()
|
|
|
|
|
color = NARSIE_WINDOW_COLOUR
|
|
|
|
|
|
|
|
|
@@ -497,14 +510,6 @@
|
|
|
|
|
desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it."
|
|
|
|
|
var/id
|
|
|
|
|
|
|
|
|
|
/obj/structure/window/reinforced/polarized/proc/toggle()
|
|
|
|
|
if(opacity)
|
|
|
|
|
animate(src, color="#FFFFFF", time=5)
|
|
|
|
|
set_opacity(0)
|
|
|
|
|
else
|
|
|
|
|
animate(src, color="#222222", time=5)
|
|
|
|
|
set_opacity(1)
|
|
|
|
|
|
|
|
|
|
/obj/machinery/button/windowtint
|
|
|
|
|
name = "window tint control"
|
|
|
|
|
icon = 'icons/obj/power.dmi'
|
|
|
|
@@ -514,12 +519,35 @@
|
|
|
|
|
var/id = 0
|
|
|
|
|
var/active = 0
|
|
|
|
|
|
|
|
|
|
/obj/machinery/button/windowtint/Initialize(mapload, w_dir = null)
|
|
|
|
|
. = ..()
|
|
|
|
|
switch(w_dir)
|
|
|
|
|
if(NORTH)
|
|
|
|
|
pixel_y = 25
|
|
|
|
|
if(SOUTH)
|
|
|
|
|
pixel_y = -25
|
|
|
|
|
if(EAST)
|
|
|
|
|
pixel_x = 25
|
|
|
|
|
if(WEST)
|
|
|
|
|
pixel_x = -25
|
|
|
|
|
|
|
|
|
|
/obj/machinery/button/windowtint/attack_hand(mob/user)
|
|
|
|
|
if(..())
|
|
|
|
|
return 1
|
|
|
|
|
return TRUE
|
|
|
|
|
|
|
|
|
|
toggle_tint()
|
|
|
|
|
|
|
|
|
|
/obj/machinery/button/windowtint/wrench_act(mob/user, obj/item/I)
|
|
|
|
|
. = TRUE
|
|
|
|
|
if(!I.tool_use_check(user, 0))
|
|
|
|
|
return
|
|
|
|
|
user.visible_message("<span class='notice'>[user] starts unwrenching [src] from the wall...</span>", "<span class='notice'>You are unwrenching [src] from the wall...</span>", "<span class='warning'>You hear ratcheting.</span>")
|
|
|
|
|
if(!I.use_tool(src, user, 50, volume = I.tool_volume))
|
|
|
|
|
return
|
|
|
|
|
WRENCH_UNANCHOR_WALL_MESSAGE
|
|
|
|
|
new /obj/item/mounted/frame/light_switch/windowtint(get_turf(src))
|
|
|
|
|
qdel(src)
|
|
|
|
|
|
|
|
|
|
/obj/machinery/button/windowtint/proc/toggle_tint()
|
|
|
|
|
use_power(5)
|
|
|
|
|
|
|
|
|
@@ -528,9 +556,11 @@
|
|
|
|
|
|
|
|
|
|
for(var/obj/structure/window/reinforced/polarized/W in range(src,range))
|
|
|
|
|
if(W.id == src.id || !W.id)
|
|
|
|
|
spawn(0)
|
|
|
|
|
W.toggle()
|
|
|
|
|
return
|
|
|
|
|
W.toggle_polarization()
|
|
|
|
|
|
|
|
|
|
for(var/obj/structure/window/full/reinforced/polarized/W in range(src, range))
|
|
|
|
|
if(W.id == id || !W.id)
|
|
|
|
|
W.toggle_polarization()
|
|
|
|
|
|
|
|
|
|
/obj/machinery/button/windowtint/power_change()
|
|
|
|
|
..()
|
|
|
|
@@ -589,7 +619,7 @@
|
|
|
|
|
icon_state = "window"
|
|
|
|
|
max_integrity = 50
|
|
|
|
|
smooth = SMOOTH_TRUE
|
|
|
|
|
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /turf/simulated/wall/indestructible/fakeglass)
|
|
|
|
|
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/polarized, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /turf/simulated/wall/indestructible/fakeglass)
|
|
|
|
|
|
|
|
|
|
/obj/structure/window/full/plasmabasic
|
|
|
|
|
name = "plasma window"
|
|
|
|
@@ -602,7 +632,7 @@
|
|
|
|
|
heat_resistance = 32000
|
|
|
|
|
max_integrity = 300
|
|
|
|
|
smooth = SMOOTH_TRUE
|
|
|
|
|
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /turf/simulated/wall/indestructible/fakeglass)
|
|
|
|
|
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/polarized, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /turf/simulated/wall/indestructible/fakeglass)
|
|
|
|
|
explosion_block = 1
|
|
|
|
|
armor = list("melee" = 75, "bullet" = 5, "laser" = 0, "energy" = 0, "bomb" = 45, "bio" = 100, "rad" = 100, "fire" = 99, "acid" = 100)
|
|
|
|
|
rad_insulation = RAD_NO_INSULATION
|
|
|
|
@@ -616,7 +646,7 @@
|
|
|
|
|
shardtype = /obj/item/shard/plasma
|
|
|
|
|
glass_type = /obj/item/stack/sheet/plasmarglass
|
|
|
|
|
smooth = SMOOTH_TRUE
|
|
|
|
|
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /turf/simulated/wall/indestructible/fakeglass)
|
|
|
|
|
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/polarized, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /turf/simulated/wall/indestructible/fakeglass)
|
|
|
|
|
reinf = TRUE
|
|
|
|
|
max_integrity = 1000
|
|
|
|
|
explosion_block = 2
|
|
|
|
@@ -632,7 +662,7 @@
|
|
|
|
|
icon = 'icons/obj/smooth_structures/reinforced_window.dmi'
|
|
|
|
|
icon_state = "r_window"
|
|
|
|
|
smooth = SMOOTH_TRUE
|
|
|
|
|
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /turf/simulated/wall/indestructible/fakeglass)
|
|
|
|
|
canSmoothWith = list(/obj/structure/window/full/basic, /obj/structure/window/full/reinforced, /obj/structure/window/full/reinforced/polarized, /obj/structure/window/full/reinforced/tinted, /obj/structure/window/full/plasmabasic, /obj/structure/window/full/plasmareinforced, /turf/simulated/wall/indestructible/fakeglass)
|
|
|
|
|
max_integrity = 100
|
|
|
|
|
reinf = TRUE
|
|
|
|
|
heat_resistance = 1600
|
|
|
|
@@ -641,6 +671,11 @@
|
|
|
|
|
explosion_block = 1
|
|
|
|
|
glass_type = /obj/item/stack/sheet/rglass
|
|
|
|
|
|
|
|
|
|
/obj/structure/window/full/reinforced/polarized
|
|
|
|
|
name = "electrochromic window"
|
|
|
|
|
desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it."
|
|
|
|
|
var/id
|
|
|
|
|
|
|
|
|
|
/obj/structure/window/full/reinforced/tinted
|
|
|
|
|
name = "tinted window"
|
|
|
|
|
desc = "It looks rather strong and opaque. Might take a few good hits to shatter it."
|
|
|
|
|