mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
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:
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user