Plasmafire hotfix (#21440)

* I am in severe pain

* airlock changes

* whoops walls were too low

* blocking heat spread

* removes tweaks
This commit is contained in:
DGamerL
2023-06-23 15:00:36 -05:00
committed by GitHub
parent 81c107d1f8
commit b759ced58b
8 changed files with 22 additions and 20 deletions
+3 -1
View File
@@ -1485,7 +1485,7 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
else
DA = new /obj/structure/door_assembly(loc)
//If you come across a null assemblytype, it will produce the default assembly instead of disintegrating.
DA.heat_proof_finished = heat_proof //tracks whether there's rglass in
DA.reinforced_glass = src.reinforced_glass //tracks whether there's rglass in
DA.anchored = TRUE
DA.glass = src.glass
DA.polarized_glass = polarized_glass
@@ -1660,6 +1660,8 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
/obj/machinery/door/airlock/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(heat_proof)
return
if(exposed_temperature > (T0C + heat_resistance))
take_damage(round(exposed_volume / 100), BURN, 0, 0)
@@ -197,8 +197,6 @@
DA = new /obj/structure/door_assembly(loc)
if(glass)
DA.glass = TRUE
if(heat_proof)
DA.heat_proof_finished = TRUE
DA.update_icon()
DA.update_name()
qdel(src)
+6
View File
@@ -22,6 +22,7 @@
// Whether the door is bolted or not.
var/locked = FALSE
var/glass = FALSE
var/reinforced_glass = FALSE
var/welded = FALSE
var/normalspeed = TRUE
var/auto_close_time = 150
@@ -458,6 +459,11 @@
if(!glass && GLOB.cameranet)
GLOB.cameranet.updateVisibility(src, 0)
/obj/machinery/door/BlockSuperconductivity() // Only heatproof airlocks block heat, currently only varedited doors have this
if(heat_proof)
return 1
return 0
/obj/machinery/door/proc/check_unres() //unrestricted sides. This overlay indicates which directions the player can access even without an ID
if(hasPower() && unres_sides)
. = list()
+1 -1
View File
@@ -13,7 +13,7 @@
density = FALSE
max_integrity = 300
resistance_flags = FIRE_PROOF
heat_proof = TRUE
heat_proof = FALSE
glass = TRUE
explosion_block = 1
safe = FALSE
+10 -8
View File
@@ -19,7 +19,7 @@
var/glass = FALSE // FALSE = glass can be installed. TRUE = glass is already installed.
var/polarized_glass = FALSE
var/created_name
var/heat_proof_finished = FALSE //whether to heat-proof the finished airlock
var/reinforced_glass = FALSE // FALSE = rglass can be installed. TRUE = rglass is already installed.
var/noglass = FALSE //airlocks with no glass version, also cannot be modified with sheets
var/material_type = /obj/item/stack/sheet/metal
var/material_amt = 4
@@ -105,7 +105,7 @@
return
if(S.type == /obj/item/stack/sheet/rglass)
to_chat(user, "<span class='notice'>You install reinforced glass windows into the airlock assembly.</span>")
heat_proof_finished = TRUE //reinforced glass makes the airlock heat-proof
reinforced_glass = TRUE
else
to_chat(user, "<span class='notice'>You install regular glass windows into the airlock assembly.</span>")
S.use(1)
@@ -155,12 +155,14 @@
if(glass)
door = new glass_type(loc)
door.polarized_glass = polarized_glass
if(reinforced_glass)
door = new glass_type(loc)
door.polarized_glass = polarized_glass
else
door = new airlock_type(loc)
door.setDir(dir)
door.electronics = electronics
door.unres_sides = electronics.unres_access_from
door.heat_proof = heat_proof_finished
if(electronics.one_access)
door.req_access = null
door.req_one_access = electronics.selected_accesses
@@ -215,9 +217,9 @@
if(!I.use_tool(src, user, 40, volume = I.tool_volume))
return
to_chat(user, "<span class='notice'>You weld the glass panel out.</span>")
if(heat_proof_finished)
if(reinforced_glass)
new /obj/item/stack/sheet/rglass(get_turf(src))
heat_proof_finished = FALSE
reinforced_glass = FALSE
else
new /obj/item/stack/sheet/glass(get_turf(src))
glass = FALSE
@@ -272,11 +274,11 @@
name = "wired "
if(AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
name = "near finished "
name += "[heat_proof_finished ? "heat-proofed " : ""][glass ? "window " : ""][base_name] assembly"
name += "[reinforced_glass ? "window " : ""][glass ? "window " : ""][base_name] assembly"
/obj/structure/door_assembly/proc/transfer_assembly_vars(obj/structure/door_assembly/source, obj/structure/door_assembly/target, previous = FALSE)
target.glass = source.glass
target.heat_proof_finished = source.heat_proof_finished
target.reinforced_glass = source.reinforced_glass
target.created_name = source.created_name
target.state = source.state
target.anchored = source.anchored
@@ -300,7 +302,7 @@
new to_spawn_type(T, material_amt)
if(glass)
if(disassembled)
if(heat_proof_finished)
if(reinforced_glass)
new /obj/item/stack/sheet/rglass(T)
else
new /obj/item/stack/sheet/glass(T)
+1 -1
View File
@@ -29,7 +29,7 @@
thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT
heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall
var/heat_resistance = 9000 // Wish this could be lower, but can't have shit in atmos
var/heat_resistance = 5000
var/can_dismantle_with_welder = TRUE
var/hardness = 40 //lower numbers are harder. Used to determine the probability of a hulk smashing through.
@@ -17,7 +17,7 @@
can_dismantle_with_welder = FALSE
smoothing_groups = list(SMOOTH_GROUP_SIMULATED_TURFS, SMOOTH_GROUP_WALLS, SMOOTH_GROUP_REINFORCED_WALLS)
canSmoothWith = list(SMOOTH_GROUP_WALLS, SMOOTH_GROUP_REGULAR_WALLS, SMOOTH_GROUP_REINFORCED_WALLS)
heat_resistance = 40000 // Ain't getting through this soon
heat_resistance = 20000 // Ain't getting through this soon
var/d_state = RWALL_INTACT
var/can_be_reinforced = 1
@@ -41,12 +41,6 @@
active_hotspot.just_spawned = (current_cycle < SSair.times_fired)
//remove just_spawned protection if no longer processing this cell
SSair.add_to_active(src, 0)
var/list/adjacent_dense_turfs = AdjacentTurfs(FALSE, TRUE, TRUE) //Checks adjacent turfs for dense turfs, only in the 4 cardinal directions
if(active_hotspot == null)
return igniting
for(var/turf/simulated/wall/W in adjacent_dense_turfs)
if(active_hotspot.temperature > W.heat_resistance) //Only deal heat damage when it's actually hot enough
W.take_damage(1 * (active_hotspot.temperature / W.heat_resistance))
return igniting
//This is the icon for fire on turfs, also helps for nurturing small fires until they are full tile