mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-25 14:00:18 +01:00
Merge branch 'master' into medbay_fixes_and_shit
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
name = "portable suit cooling unit"
|
||||
desc = "A portable heat sink and liquid cooled radiator that can be hooked up to a space suit's existing temperature controls to provide industrial levels of cooling."
|
||||
w_class = ITEMSIZE_LARGE
|
||||
icon = 'icons/obj/suitcooler.dmi'
|
||||
icon = 'icons/obj/contained_items/tools/suitcooler.dmi'
|
||||
icon_state = "suitcooler0"
|
||||
item_state = "coolingpack"
|
||||
contained_sprite = TRUE
|
||||
@@ -24,7 +24,7 @@
|
||||
var/cover_open = 0 //is the cover open?
|
||||
var/obj/item/cell/cell
|
||||
var/max_cooling = 12 //in degrees per second - probably don't need to mess with heat capacity here
|
||||
var/charge_consumption = 16.6 //charge per second at max_cooling
|
||||
var/charge_consumption = 8.3 //charge per second at max_cooling
|
||||
var/thermostat = T20C
|
||||
|
||||
//TODO: make it heat up the surroundings when not in space
|
||||
@@ -134,8 +134,13 @@
|
||||
src.cell = null
|
||||
update_icon()
|
||||
return
|
||||
toggle_power(user)
|
||||
|
||||
//TODO use a UI like the air tanks
|
||||
/obj/item/device/suit_cooling_unit/AltClick(mob/user)
|
||||
if(Adjacent(user))
|
||||
toggle_power(user)
|
||||
|
||||
/obj/item/device/suit_cooling_unit/proc/toggle_power(var/mob/user)
|
||||
if(on)
|
||||
turn_off()
|
||||
else
|
||||
@@ -177,23 +182,31 @@
|
||||
return
|
||||
|
||||
icon_state = "suitcooler0"
|
||||
item_state = "coolingpack"
|
||||
|
||||
if(!cell || !on)
|
||||
return
|
||||
if(cell && on)
|
||||
var/battery_level = 0
|
||||
switch(round(cell.percent()))
|
||||
if(86 to INFINITY)
|
||||
battery_level = 0
|
||||
if(69 to 85)
|
||||
battery_level = 1
|
||||
if(52 to 68)
|
||||
battery_level = 2
|
||||
if(35 to 51)
|
||||
battery_level = 3
|
||||
if(18 to 34)
|
||||
battery_level = 4
|
||||
if(-INFINITY to 17)
|
||||
battery_level = 5
|
||||
|
||||
switch(round(cell.percent()))
|
||||
if(86 to INFINITY)
|
||||
add_overlay("battery-0")
|
||||
if(69 to 85)
|
||||
add_overlay("battery-1")
|
||||
if(52 to 68)
|
||||
add_overlay("battery-2")
|
||||
if(35 to 51)
|
||||
add_overlay("battery-3")
|
||||
if(18 to 34)
|
||||
add_overlay("battery-4")
|
||||
if(-INFINITY to 17)
|
||||
add_overlay("battery-5")
|
||||
add_overlay("battery-[battery_level]")
|
||||
item_state = "coolingpack[battery_level]"
|
||||
|
||||
if(ismob(loc))
|
||||
var/mob/M = loc
|
||||
M.update_inv_back()
|
||||
M.update_inv_s_store()
|
||||
|
||||
/obj/item/device/suit_cooling_unit/examine(mob/user)
|
||||
if(!..(user, 1))
|
||||
|
||||
@@ -211,6 +211,10 @@ RFD Construction-Class
|
||||
build_cost = 1
|
||||
build_type = "floor"
|
||||
build_atom = /turf/simulated/floor/airless
|
||||
else if(istype(T, /turf/simulated/open))
|
||||
build_cost = 1
|
||||
build_type = "floor"
|
||||
build_atom = /turf/simulated/floor/airless
|
||||
else if(istype(T, /turf/simulated/floor))
|
||||
build_delay = 20
|
||||
build_cost = 3
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
can_place = TRUE
|
||||
else
|
||||
for (var/obj/item/grab/G in C.grabbed_by)
|
||||
if (G.loc == user && G.state >= GRAB_AGGRESSIVE)
|
||||
if (G.state >= GRAB_AGGRESSIVE)
|
||||
can_place = TRUE
|
||||
break
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
user.drop_from_inventory(cuffs,target)
|
||||
else
|
||||
cuffs.forceMove(target)
|
||||
|
||||
|
||||
if(!legcuff)
|
||||
target.handcuffed = cuffs
|
||||
target.update_inv_handcuffed()
|
||||
@@ -250,4 +250,4 @@
|
||||
icon_state = "legcuff"
|
||||
legcuff = TRUE
|
||||
breakouttime = 30 SECONDS
|
||||
cuff_type = "legcuffs"
|
||||
cuff_type = "legcuffs"
|
||||
|
||||
@@ -172,12 +172,6 @@
|
||||
desc = "It's an orange backpack which was designed to hold beakers, pill bottles and bottles."
|
||||
icon_state = "chempack"
|
||||
|
||||
/obj/item/storage/backpack/cloak
|
||||
name = "tunnel cloak"
|
||||
desc = "It's a Vaurca cloak with storage pockets."
|
||||
icon_state = "cape"
|
||||
sprite_sheets = list(BODYTYPE_VAURCA = 'icons/mob/species/vaurca/back.dmi')
|
||||
|
||||
/obj/item/storage/backpack/syndie
|
||||
name = "syndicate rucksack"
|
||||
desc = "The latest in carbon fiber and red satin combat rucksack technology. Comfortable and tough!"
|
||||
@@ -625,4 +619,71 @@
|
||||
desc = "A small, fashionable bag typically worn over the shoulder."
|
||||
icon_state = "purse"
|
||||
item_state = "purse"
|
||||
max_storage_space = 16
|
||||
max_storage_space = 16
|
||||
|
||||
//**Vaurca cloaks**//
|
||||
|
||||
/obj/item/storage/backpack/cloak
|
||||
name = "tunnel cloak"
|
||||
desc = "A Vaurca cloak with storage pockets."
|
||||
icon_state = "cape"
|
||||
item_state = "cape"
|
||||
sprite_sheets = list(BODYTYPE_VAURCA = 'icons/mob/species/vaurca/back.dmi')
|
||||
var/hooded = FALSE
|
||||
|
||||
/obj/item/storage/backpack/cloak/verb/toggle_cloak_hood()
|
||||
set name = "Toggle Cloak Hood"
|
||||
set desc = "Toggle your cloak hood."
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
if(use_check_and_message(usr))
|
||||
return 0
|
||||
hooded = !hooded
|
||||
to_chat(usr, "You [hooded ? "raise" : "lower"] \the [src] hood.")
|
||||
icon_state = "[initial(icon_state)][hooded ? "_up" : ""]"
|
||||
item_state = "icon_state"
|
||||
var/mob/living/carbon/human/H = src.loc
|
||||
H.update_icon()
|
||||
H.update_inv_back()
|
||||
|
||||
/obj/item/storage/backpack/cloak/sedantis
|
||||
name = "Sedantis tunnel cloak"
|
||||
desc = "A Vaurca cloak with storage pockets. This one has the Sedantis flag design."
|
||||
icon_state = "sedcape"
|
||||
item_state = "sedcape"
|
||||
|
||||
/obj/item/storage/backpack/cloak/medical
|
||||
name = "medical tunnel cloak"
|
||||
desc = "A Vaurca cloak with storage pockets. This one has the medical department design."
|
||||
icon_state = "medcape"
|
||||
item_state = "medcape"
|
||||
|
||||
/obj/item/storage/backpack/cloak/engi
|
||||
name = "engineering tunnel cloak"
|
||||
desc = "A Vaurca cloak with storage pockets. This one has the engineering department design."
|
||||
icon_state = "engicape"
|
||||
item_state = "engicape"
|
||||
|
||||
/obj/item/storage/backpack/cloak/atmos
|
||||
name = "atmospherics tunnel cloak"
|
||||
desc = "A Vaurca cloak with storage pockets. This one has the atmospherics design."
|
||||
icon_state = "atmoscape"
|
||||
item_state = "atmoscape"
|
||||
|
||||
/obj/item/storage/backpack/cloak/cargo
|
||||
name = "cargo tunnel cloak"
|
||||
desc = "A Vaurca cloak with storage pockets. This one has the supply department design."
|
||||
icon_state = "cargocape"
|
||||
item_state = "cargocape"
|
||||
|
||||
/obj/item/storage/backpack/cloak/sci
|
||||
name = "science tunnel cloak"
|
||||
desc = "A Vaurca cloak with storage pockets. This one has the science department design."
|
||||
icon_state = "scicape"
|
||||
item_state = "scicape"
|
||||
|
||||
/obj/item/storage/backpack/cloak/sec
|
||||
name = "security tunnel cloak"
|
||||
desc = "A Vaurca cloak with storage pockets. This one has the security department design."
|
||||
icon_state = "seccape"
|
||||
item_state = "seccape"
|
||||
@@ -46,19 +46,24 @@
|
||||
var/flipped = null
|
||||
var/flippable = 1
|
||||
var/wear_over_suit = 0
|
||||
var/base_name = ""
|
||||
|
||||
/obj/item/storage/wallet/Initialize()
|
||||
. = ..()
|
||||
base_name = name
|
||||
AddComponent(/datum/component/base_name, name)
|
||||
|
||||
/obj/item/storage/wallet/proc/update_name(var/base_name = initial(name))
|
||||
SEND_SIGNAL(src, COMSIG_BASENAME_SETNAME, args)
|
||||
if(front_id)
|
||||
name = "[base_name] ([front_id])"
|
||||
else
|
||||
name = "[base_name]"
|
||||
|
||||
/obj/item/storage/wallet/remove_from_storage(obj/item/W as obj, atom/new_location)
|
||||
. = ..(W, new_location)
|
||||
if(.)
|
||||
if(W == front_id)
|
||||
front_id = null
|
||||
name = base_name
|
||||
update_name()
|
||||
update_icon()
|
||||
|
||||
/obj/item/storage/wallet/handle_item_insertion(obj/item/W as obj, prevent_warning = 0)
|
||||
@@ -66,7 +71,7 @@
|
||||
if(.)
|
||||
if(!front_id && istype(W, /obj/item/card/id))
|
||||
front_id = W
|
||||
name = "[name] ([front_id])"
|
||||
update_name()
|
||||
update_icon()
|
||||
|
||||
/obj/item/storage/wallet/update_icon()
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
new /obj/item/clothing/mask/gas/alt(src)
|
||||
new /obj/item/clothing/mask/gas/half(src)
|
||||
new /obj/item/auto_cpr(src)
|
||||
new /obj/item/clothing/suit/storage/toggle/first_responder_jacket(src)
|
||||
new /obj/item/clothing/suit/storage/toggle/fr_jacket/alt(src)
|
||||
|
||||
/obj/structure/closet/secure_closet/CMO
|
||||
name = "chief medical officer's locker"
|
||||
|
||||
@@ -140,6 +140,8 @@
|
||||
new /obj/item/clothing/accessory/badge/hos(src)
|
||||
new /obj/item/clothing/gloves/black_leather(src)
|
||||
new /obj/item/clothing/suit/storage/toggle/armor/hos(src)
|
||||
new /obj/item/clothing/mask/gas/alt(src)
|
||||
new /obj/item/clothing/mask/gas/half(src)
|
||||
//Tools
|
||||
new /obj/item/device/radio/headset/heads/hos(src)
|
||||
new /obj/item/device/radio/headset/heads/hos/alt(src)
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
/obj/structure/window_frame
|
||||
name = "window frame"
|
||||
desc = "An empty window frame."
|
||||
icon = 'icons/obj/smooth/full_window.dmi'
|
||||
icon_state = "window_frame"
|
||||
build_amt = 4
|
||||
anchored = FALSE
|
||||
|
||||
/obj/structure/window_frame/anchored
|
||||
anchored = TRUE
|
||||
|
||||
/obj/structure/window_frame/attackby(obj/item/W, mob/user)
|
||||
if((W.isscrewdriver()) && (istype(loc, /turf/simulated) || anchored))
|
||||
playsound(src, W.usesound, 80, 1)
|
||||
anchored = !anchored
|
||||
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] \the [src].</span>", \
|
||||
"<span class='notice'>You have [anchored ? "fastened the grille to" : "unfastened the grill from"] the floor.</span>")
|
||||
return
|
||||
|
||||
else if(W.iswelder())
|
||||
var/obj/item/weldingtool/WT = W
|
||||
if(!WT.isOn())
|
||||
to_chat(user, SPAN_WARNING("\The [WT] isn't turned on."))
|
||||
return
|
||||
if(WT.remove_fuel(0, user))
|
||||
to_chat(user, SPAN_NOTICE("You use \the [WT] to remove \the [src]."))
|
||||
playsound(src, WT.usesound, 80, 1)
|
||||
new /obj/item/stack/material/steel(get_turf(src),rand(1,3))
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
else if(istype(W, /obj/item/stack/material) && W.get_material_name() == MATERIAL_GLASS_REINFORCED && anchored)
|
||||
var/obj/item/stack/material/G = W
|
||||
if(G.use(4))
|
||||
playsound(src, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
to_chat(user, SPAN_WARNING ("You place the glass on the window frame."))
|
||||
new /obj/structure/window/full(get_turf(src))
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
to_chat(user, SPAN_WARNING ("You need at least four sheets of reinforced glass to finished the window."))
|
||||
|
||||
else if(istype(W, /obj/item/stack/material) && W.get_material_name() == MATERIAL_GLASS_REINFORCED_PHORON && anchored)
|
||||
var/obj/item/stack/material/G = W
|
||||
if(G.use(4))
|
||||
playsound(src, 'sound/items/Deconstruct.ogg', 50, 1)
|
||||
to_chat(user, SPAN_WARNING ("You place the glass on the window frame."))
|
||||
new /obj/structure/window/full/phoron(get_turf(src))
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
to_chat(user, SPAN_WARNING ("You need at least four sheets of reinforced borosilicate glass to finished the window."))
|
||||
@@ -10,6 +10,7 @@
|
||||
anchored = TRUE
|
||||
flags = CONDUCT
|
||||
explosion_resistance = 1
|
||||
layer = 2.98
|
||||
var/health = 10
|
||||
var/destroyed = 0
|
||||
|
||||
|
||||
@@ -870,6 +870,30 @@
|
||||
/obj/structure/sign/flag/gadpathur/right
|
||||
icon_state = "gadpathur_r"
|
||||
|
||||
/obj/item/flag/vysoka
|
||||
name = "Free System of Vysoka flag"
|
||||
desc = "The flag of the Free System of Vysoka."
|
||||
desc_fluff = "The red, yellow and Coalition-blue flag of Vysoka, as drawn when one wishes to represent the planet as a whole. As Vysokan communities are rather traditional and tied to their respective Host, village or city-state, natives are more likely to \
|
||||
identify with local symbols. This has not stopped the original flag from being flown in times of much-needed unity."
|
||||
flag_path = "vysoka"
|
||||
|
||||
/obj/structure/sign/flag/vysoka
|
||||
name = "Free System of Vysoka flag"
|
||||
desc = "The flag of the Free System of Vysoka."
|
||||
desc_fluff = "The red, yellow and Coalition-blue flag of Vysoka, as drawn when one wishes to represent the planet as a whole. As Vysokan communities are rather traditional and tied to their respective Host, village or city-state, natives are more likely to \
|
||||
identify with local symbols. This has not stopped the original flag from being flown in times of much-needed unity."
|
||||
icon_state = "vysoka"
|
||||
|
||||
/obj/item/flag/vysoka/l
|
||||
name = "large Free System of Vysoka flag"
|
||||
flag_size = 1
|
||||
|
||||
/obj/structure/sign/flag/vysoka/left
|
||||
icon_state = "vysoka_l"
|
||||
|
||||
/obj/structure/sign/flag/vysoka/right
|
||||
icon_state = "vysoka_r"
|
||||
|
||||
/obj/item/flag/afterattack(var/atom/A, var/mob/user, var/adjacent, var/clickparams)
|
||||
if (!adjacent)
|
||||
return
|
||||
|
||||
@@ -432,9 +432,16 @@
|
||||
bedpath = /obj/structure/bed/roller/hover
|
||||
|
||||
/obj/item/roller/attack_self(mob/user)
|
||||
var/obj/structure/bed/roller/R = new bedpath(user.loc)
|
||||
R.add_fingerprint(user)
|
||||
qdel(src)
|
||||
..()
|
||||
deploy_roller(user, user.loc)
|
||||
|
||||
/obj/item/roller/afterattack(obj/target, mob/user, proximity)
|
||||
if(!proximity)
|
||||
return
|
||||
if(isturf(target))
|
||||
var/turf/T = target
|
||||
if(!T.density)
|
||||
deploy_roller(user, target)
|
||||
|
||||
/obj/item/roller/attackby(obj/item/W as obj, mob/user as mob)
|
||||
|
||||
@@ -448,6 +455,11 @@
|
||||
|
||||
..()
|
||||
|
||||
/obj/item/roller/proc/deploy_roller(mob/user, atom/location)
|
||||
var/obj/structure/bed/roller/R = new bedpath(location)
|
||||
R.add_fingerprint(user)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/roller_holder
|
||||
name = "roller bed rack"
|
||||
desc = "A rack for carrying a collapsed roller bed."
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
var/shardtype = /obj/item/material/shard
|
||||
var/glasstype = null // Set this in subtypes. Null is assumed strange or otherwise impossible to dismantle, such as for shuttle glass.
|
||||
var/silicate = 0 // number of units of silicate
|
||||
var/base_frame = null
|
||||
|
||||
atmos_canpass = CANPASS_PROC
|
||||
|
||||
@@ -45,6 +46,12 @@
|
||||
else
|
||||
to_chat(user, SPAN_NOTICE("There is a thick layer of silicate covering it."))
|
||||
|
||||
/obj/structure/window/proc/update_nearby_icons()
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
/obj/structure/window/update_icon()
|
||||
queue_smooth(src)
|
||||
|
||||
/obj/structure/window/proc/take_damage(var/damage = 0, var/sound_effect = 1)
|
||||
var/initialhealth = health
|
||||
|
||||
@@ -102,6 +109,14 @@
|
||||
new shardtype(loc) //todo pooling?
|
||||
if(reinf)
|
||||
new /obj/item/stack/rods(loc)
|
||||
|
||||
if(base_frame)
|
||||
if(prob(50))
|
||||
var/obj/F = new base_frame(loc)
|
||||
F.anchored = anchored
|
||||
else
|
||||
new /obj/item/material/shard/shrapnel(loc)
|
||||
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -233,6 +248,7 @@
|
||||
to_chat(user, (state == 1 ? SPAN_NOTICE("You have unfastened the window from the frame.") : SPAN_NOTICE("You have fastened the window to the frame.")))
|
||||
else if(reinf && state == 0)
|
||||
anchored = !anchored
|
||||
update_icon()
|
||||
update_nearby_icons()
|
||||
playsound(loc, W.usesound, 75, 1)
|
||||
to_chat(user, (anchored ? SPAN_NOTICE("You have fastened the frame to the floor.") : SPAN_NOTICE("You have unfastened the frame from the floor.")))
|
||||
@@ -241,6 +257,8 @@
|
||||
update_nearby_icons()
|
||||
playsound(loc, W.usesound, 75, 1)
|
||||
to_chat(user, (anchored ? SPAN_NOTICE("You have fastened the window to the floor.") : SPAN_NOTICE("You have unfastened the window.")))
|
||||
update_icon()
|
||||
update_nearby_icons()
|
||||
else if(W.iscrowbar() && reinf && state <= 1)
|
||||
state = 1 - state
|
||||
playsound(loc, W.usesound, 75, 1)
|
||||
@@ -250,12 +268,7 @@
|
||||
to_chat(user, SPAN_NOTICE("You're not sure how to dismantle \the [src] properly."))
|
||||
else
|
||||
visible_message(SPAN_NOTICE("[user] dismantles \the [src]."))
|
||||
if(dir == SOUTHWEST)
|
||||
var/obj/item/stack/material/mats = new glasstype(loc)
|
||||
mats.amount = is_fulltile() ? 4 : 2
|
||||
else
|
||||
new glasstype(loc)
|
||||
qdel(src)
|
||||
dismantle_window()
|
||||
else
|
||||
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
|
||||
if(W.damtype == BRUTE || W.damtype == BURN)
|
||||
@@ -300,6 +313,14 @@
|
||||
take_damage(damage)
|
||||
return
|
||||
|
||||
/obj/structure/window/proc/dismantle_window()
|
||||
if(dir == SOUTHWEST)
|
||||
var/obj/item/stack/material/mats = new glasstype(loc)
|
||||
mats.amount = is_fulltile() ? 4 : 2
|
||||
else
|
||||
new glasstype(loc)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/window/Initialize(mapload, start_dir = null, constructed=0)
|
||||
. = ..()
|
||||
|
||||
@@ -342,33 +363,6 @@
|
||||
return 1
|
||||
return 0
|
||||
|
||||
//This proc is used to update the icons of nearby windows. It should not be confused with update_nearby_tiles(), which is an atmos proc!
|
||||
/obj/structure/window/proc/update_nearby_icons()
|
||||
update_icon()
|
||||
for(var/obj/structure/window/W in orange(src, 1))
|
||||
W.update_icon()
|
||||
|
||||
//merges adjacent full-tile windows into one (blatant ripoff from game/smoothwall.dm)
|
||||
/obj/structure/window/update_icon()
|
||||
//A little cludge here, since I don't know how it will work with slim windows. Most likely VERY wrong.
|
||||
//this way it will only update full-tile ones
|
||||
cut_overlays()
|
||||
if(!is_fulltile())
|
||||
icon_state = "[basestate]"
|
||||
return
|
||||
var/list/dirs = list()
|
||||
if(anchored)
|
||||
for(var/obj/structure/window/W in orange(src,1))
|
||||
if(W.anchored && W.density && W.type == src.type && W.is_fulltile()) //Only counts anchored, not-destroyed fill-tile windows.
|
||||
dirs += get_dir(src, W)
|
||||
|
||||
var/list/connections = dirs_to_corner_states(dirs)
|
||||
|
||||
icon_state = ""
|
||||
for(var/i = 1 to 4)
|
||||
var/image/I = image(icon, "[basestate][connections[i]]", dir = 1<<(i-1))
|
||||
add_overlay(I)
|
||||
|
||||
/obj/structure/window/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
|
||||
if(exposed_temperature > maximal_heat)
|
||||
hit(damage_per_fire_tick, 0)
|
||||
@@ -514,12 +508,6 @@
|
||||
/obj/structure/window/shuttle/crescent/take_damage()
|
||||
return
|
||||
|
||||
/obj/structure/window/shuttle/update_nearby_icons()
|
||||
queue_smooth_neighbors(src)
|
||||
|
||||
/obj/structure/window/update_icon()
|
||||
queue_smooth(src)
|
||||
|
||||
/obj/structure/window/reinforced/polarized
|
||||
name = "electrochromic window"
|
||||
desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it."
|
||||
@@ -581,3 +569,59 @@
|
||||
|
||||
/obj/machinery/button/switch/windowtint/update_icon()
|
||||
icon_state = "light[active]"
|
||||
|
||||
/obj/structure/window/full
|
||||
name = "reinforced window"
|
||||
desc = "It looks rather strong. Might take a few good hits to shatter it."
|
||||
icon = 'icons/obj/smooth/full_window.dmi'
|
||||
icon_state = "window_glass"
|
||||
basestate = "window_glass"
|
||||
maxhealth = 40
|
||||
reinf = TRUE
|
||||
maximal_heat = T0C + 750
|
||||
dir = 5
|
||||
smooth = SMOOTH_TRUE
|
||||
damage_per_fire_tick = 2.0
|
||||
can_be_unanchored = TRUE
|
||||
glasstype = /obj/item/stack/material/glass/reinforced
|
||||
layer = 2.99
|
||||
base_frame = /obj/structure/window_frame
|
||||
|
||||
/obj/structure/window/full/dismantle_window()
|
||||
var/obj/item/stack/material/mats = new glasstype(loc)
|
||||
mats.amount = 4
|
||||
var/obj/structure/window_frame/F = new/obj/structure/window_frame (get_turf(src))
|
||||
F.anchored = anchored
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/window/full/phoron
|
||||
name = "reinforced borosilicate window"
|
||||
desc = "A borosilicate alloy window, with rods supporting it. It seems to be very strong."
|
||||
icon = 'icons/obj/smooth/phoron_full_window.dmi'
|
||||
icon_state = "window_glass"
|
||||
basestate = "window_glass"
|
||||
shardtype = /obj/item/material/shard/phoron
|
||||
glasstype = /obj/item/stack/material/glass/phoronrglass
|
||||
maximal_heat = T0C + 4000
|
||||
damage_per_fire_tick = 1.0
|
||||
maxhealth = 80.0
|
||||
layer = 2.99
|
||||
base_frame = /obj/structure/window_frame
|
||||
|
||||
/obj/structure/window/reinforced/polarized/full
|
||||
name = "reinforced electrochromic window"
|
||||
desc = "Adjusts its tint with voltage. Might take a few good hits to shatter it."
|
||||
icon = 'icons/obj/smooth/full_window.dmi'
|
||||
icon_state = "window_glass"
|
||||
basestate = "window_glass"
|
||||
dir = 5
|
||||
smooth = SMOOTH_TRUE
|
||||
layer = 2.99
|
||||
base_frame = /obj/structure/window_frame
|
||||
|
||||
/obj/structure/window/reinforced/polarized/full/dismantle_window()
|
||||
var/obj/item/stack/material/mats = new glasstype(loc)
|
||||
mats.amount = 4
|
||||
var/obj/structure/window_frame/F = new/obj/structure/window_frame (get_turf(src))
|
||||
F.anchored = anchored
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user