Borosilicate windows

- This is the second part of my PR that added phoron windows to protect the SM core from fires
- Borosilicate windows are heat resistant  versions of regular glass windows. This PR renames them (from phoron windows/phoron glass/etc.) and adjusts the fire resistances
- They are no longer completely fireproof. Instead, all window types have fire resistance variables - maximal safe temperature and amount of damage taken if temperature exceeds this limit.
- Regular: 100C, Regular Reinforced: 750C, Borosilicate: 2000C, Borosilicate Reinforced: 4000C.
- Adds alloying recipe to make borosilicate glass. 2 sand + 1 platinum alloy.
This commit is contained in:
Atlantis
2015-07-27 13:49:12 +02:00
parent cd474e3211
commit 47f0b47c46
5 changed files with 49 additions and 28 deletions

View File

@@ -8,6 +8,8 @@
anchored = 1.0 anchored = 1.0
flags = ON_BORDER flags = ON_BORDER
var/maxhealth = 14.0 var/maxhealth = 14.0
var/maximal_heat = T0C + 100 // Maximal heat before this window begins taking damage from fire
var/damage_per_fire_tick = 2.0 // Amount of damage per fire tick. Regular windows are not fireproof so they might as well break quickly.
var/health var/health
var/ini_dir = null var/ini_dir = null
var/state = 2 var/state = 2
@@ -388,8 +390,8 @@
return return
/obj/structure/window/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) /obj/structure/window/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(exposed_temperature > T0C + 800) if(exposed_temperature > maximal_heat)
hit(round(exposed_volume / 100), 0) hit(damage_per_fire_tick, 0)
..() ..()
@@ -399,44 +401,46 @@
icon_state = "window" icon_state = "window"
basestate = "window" basestate = "window"
glasstype = /obj/item/stack/material/glass glasstype = /obj/item/stack/material/glass
maximal_heat = T0C + 100
damage_per_fire_tick = 2.0
maxhealth = 12.0
/obj/structure/window/phoronbasic /obj/structure/window/phoronbasic
name = "phoron window" name = "phoron window"
desc = "A phoron-glass alloy window. It looks insanely tough to break. It appears it's also insanely tough to burn through." desc = "A borosilicate alloy window. It seems to be quite strong."
basestate = "phoronwindow" basestate = "phoronwindow"
icon_state = "phoronwindow" icon_state = "phoronwindow"
shardtype = /obj/item/weapon/material/shard/phoron shardtype = /obj/item/weapon/material/shard/phoron
glasstype = /obj/item/stack/material/glass/phoronglass glasstype = /obj/item/stack/material/glass/phoronglass
maxhealth = 120 maximal_heat = T0C + 2000
damage_per_fire_tick = 1.0
/obj/structure/window/phoronbasic/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) maxhealth = 40.0
if(exposed_temperature > T0C + 32000)
hit(round(exposed_volume / 1000), 0)
..()
/obj/structure/window/phoronreinforced /obj/structure/window/phoronreinforced
name = "reinforced phoron window" name = "reinforced borosilicate window"
desc = "A phoron-glass alloy window, with rods supporting it. It looks hopelessly tough to break. It also looks completely fireproof, considering how basic phoron windows are insanely fireproof." desc = "A borosilicate alloy window, with rods supporting it. It seems to be very strong."
basestate = "phoronrwindow" basestate = "phoronrwindow"
icon_state = "phoronrwindow" icon_state = "phoronrwindow"
shardtype = /obj/item/weapon/material/shard/phoron shardtype = /obj/item/weapon/material/shard/phoron
glasstype = /obj/item/stack/material/glass/phoronrglass glasstype = /obj/item/stack/material/glass/phoronrglass
reinf = 1 reinf = 1
maxhealth = 160 maximal_heat = T0C + 4000
damage_per_fire_tick = 1.0 // This should last for 80 fire ticks if the window is not damaged at all. The idea is that borosilicate windows have something like ablative layer that protects them for a while.
maxhealth = 80.0
/obj/structure/window/phoronreinforced/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
return
/obj/structure/window/reinforced /obj/structure/window/reinforced
name = "reinforced window" name = "reinforced window"
desc = "It looks rather strong. Might take a few good hits to shatter it." desc = "It looks rather strong. Might take a few good hits to shatter it."
icon_state = "rwindow" icon_state = "rwindow"
basestate = "rwindow" basestate = "rwindow"
maxhealth = 40 maxhealth = 40.0
reinf = 1 reinf = 1
maximal_heat = T0C + 750
damage_per_fire_tick = 2.0
glasstype = /obj/item/stack/material/glass/reinforced glasstype = /obj/item/stack/material/glass/reinforced
/obj/structure/window/New(Loc, constructed=0) /obj/structure/window/New(Loc, constructed=0)
..() ..()

View File

@@ -191,12 +191,15 @@
default_type = "reinforced glass" default_type = "reinforced glass"
/obj/item/stack/material/glass/phoronglass /obj/item/stack/material/glass/phoronglass
name = "phoron glass" name = "borosilicate glass"
singular_name = "phoron glass sheet" desc = "This sheet is special platinum-glass alloy designed to withstand large temperatures"
singular_name = "borosilicate glass sheet"
icon_state = "sheet-phoronglass" icon_state = "sheet-phoronglass"
default_type = "phoron glass" default_type = "borosilicate glass"
/obj/item/stack/material/glass/phoronrglass /obj/item/stack/material/glass/phoronrglass
name = "reinforced phoron glass" name = "reinforced borosilicate glass"
desc = "This sheet is special platinum-glass alloy designed to withstand large temperatures. It is reinforced with few rods."
singular_name = "reinforced borosilicate glass sheet"
icon_state = "sheet-phoronrglass" icon_state = "sheet-phoronrglass"
default_type = "reinforced phoron glass" default_type = "reinforced borosilicate glass"

View File

@@ -438,21 +438,20 @@ var/list/name_to_material
rod_product = null rod_product = null
/material/glass/phoron /material/glass/phoron
name = "phoron glass" name = "borosilicate glass"
stack_type = /obj/item/stack/material/glass/phoronglass stack_type = /obj/item/stack/material/glass/phoronglass
flags = MATERIAL_BRITTLE flags = MATERIAL_BRITTLE
ignition_point = PHORON_MINIMUM_BURN_TEMPERATURE+300 integrity = 100
integrity = 200 // idk why but phoron windows are strong, so.
icon_colour = "#FC2BC5" icon_colour = "#FC2BC5"
stack_origin_tech = list(TECH_MATERIAL = 3, TECH_PHORON = 2) stack_origin_tech = list(TECH_MATERIAL = 4)
created_window = /obj/structure/window/phoronbasic created_window = /obj/structure/window/phoronbasic
wire_product = null wire_product = null
rod_product = /obj/item/stack/material/glass/phoronrglass rod_product = /obj/item/stack/material/glass/phoronrglass
/material/glass/phoron/reinforced /material/glass/phoron/reinforced
name = "reinforced phoron glass" name = "reinforced borosilicate glass"
stack_type = /obj/item/stack/material/glass/phoronrglass stack_type = /obj/item/stack/material/glass/phoronrglass
stack_origin_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 2) stack_origin_tech = list(TECH_MATERIAL = 5)
composite_material = list() //todo composite_material = list() //todo
created_window = /obj/structure/window/phoronreinforced created_window = /obj/structure/window/phoronreinforced
hardness = 40 hardness = 40

View File

@@ -24,4 +24,12 @@
"coal" = 1, "coal" = 1,
"hematite" = 1 "hematite" = 1
) )
product = /obj/item/stack/material/steel product = /obj/item/stack/material/steel
/datum/alloy/borosilicate
metaltag = "borosilicate glass"
requires = list(
"platinum" = 1,
"sand" = 2
)
product = /obj/item/stack/material/glass/phoronglass

View File

@@ -0,0 +1,7 @@
author: Atlantis
delete-after: True
changes:
- rscadd: "Converted phoron glass to borosilicate glass, adjusted heat resistances accordingly, got rid of copypaste fire code. Fire resistance is now handled by variables so completely fireproof windows are possible with varedit."
- rscadd: "Windows take fire damage when heat exceeds 100C regular windows, 750C reinforced regular, 2000C borosilicate and 4000C reinforced borosilicate. For comparsions, reinforced walls begin taking damage around 6000."