Buffing plasmafires [READY FOR REVIEW] (#21000)

* Floors now almost won't melt

* grug wallmelting attempt

* Revert "grug wallmelting attempt"

This reverts commit e626504990.

I have a better idea

* letsgooo it worked (kinda(airlocks only))

* fuck yeah it worksss

* We stay winning

* woe, runtimes be upon ye

* Experimental values and some cleaning up

* nvm I hate atmos code

* more tweaks

* da window change

* Sean suggestion and temp increases
This commit is contained in:
DGamerL
2023-06-22 19:18:30 +02:00
committed by GitHub
parent 58a5fc9e46
commit 984eecd06e
10 changed files with 35 additions and 14 deletions
+6
View File
@@ -87,6 +87,7 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
var/normal_integrity = AIRLOCK_INTEGRITY_N
var/prying_so_hard = FALSE
var/paintable = TRUE // If the airlock type can be painted with an airlock painter
var/heat_resistance = 1500
var/mutable_appearance/old_buttons_underlay
var/mutable_appearance/old_lights_underlay
@@ -1657,6 +1658,11 @@ GLOBAL_LIST_EMPTY(airlock_emissive_underlays)
else
return PROCESS_KILL
/obj/machinery/door/airlock/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > (T0C + heat_resistance))
take_damage(round(exposed_volume / 100), BURN, 0, 0)
#undef AIRLOCK_CLOSED
#undef AIRLOCK_CLOSING
#undef AIRLOCK_OPEN
@@ -212,9 +212,6 @@
else
return ..()
/obj/machinery/door/airlock/plasma/BlockSuperconductivity() //we don't stop the heat~
return 0
/obj/machinery/door/airlock/plasma/glass
opacity = FALSE
glass = TRUE
-5
View File
@@ -458,11 +458,6 @@
if(!glass && GLOB.cameranet)
GLOB.cameranet.updateVisibility(src, 0)
/obj/machinery/door/BlockSuperconductivity() // All non-glass airlocks block heat, this is intended.
if(opacity || 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()
+12 -3
View File
@@ -30,6 +30,7 @@
/// Whether the "bolts" are "screwed". Used for deconstruction sequence. Has nothing to do with airlock bolting.
var/boltslocked = TRUE
var/active_alarm = FALSE
var/heat_resistance = 15000
var/list/affecting_areas
/obj/machinery/door/firedoor/Initialize(mapload)
@@ -320,6 +321,11 @@
else
return 1
/obj/machinery/door/firedoor/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > (T0C + heat_resistance))
take_damage(round(exposed_volume / 100), BURN, 0, 0)
/obj/machinery/door/firedoor/heavy
name = "heavy firelock"
icon = 'icons/obj/doors/doorfire.dmi'
@@ -328,6 +334,7 @@
explosion_block = 2
assemblytype = /obj/structure/firelock_frame/heavy
max_integrity = 550
heat_resistance = 20000
/obj/item/firelock_electronics
name = "firelock electronics"
@@ -349,6 +356,7 @@
density = TRUE
var/constructionStep = CONSTRUCTION_NOCIRCUIT
var/reinforced = 0
var/heat_resistance = 1000
/obj/structure/firelock_frame/examine(mob/user)
. = ..()
@@ -510,9 +518,10 @@
new /obj/machinery/door/firedoor(get_turf(src))
qdel(src)
/obj/structure/firelock_frame/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > (T0C + heat_resistance))
take_damage(round(exposed_volume / 100), BURN, 0, 0)
/obj/structure/firelock_frame/welder_act(mob/user, obj/item/I)
if(constructionStep != CONSTRUCTION_NOCIRCUIT)
@@ -23,6 +23,7 @@
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
var/heat_resistance = 1000
/obj/structure/door_assembly/Initialize(mapload)
. = ..()
@@ -306,3 +307,8 @@
else
new /obj/item/shard(T)
qdel(src)
/obj/structure/door_assembly/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
..()
if(exposed_temperature > (T0C + heat_resistance))
take_damage(round(exposed_volume / 100), BURN, 0, 0)
+1 -1
View File
@@ -535,7 +535,7 @@
desc = "It looks rather strong. Might take a few good hits to shatter it."
icon_state = "rwindow"
reinf = TRUE
heat_resistance = 1600
heat_resistance = 1300
armor = list(MELEE = 50, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 25, RAD = 100, FIRE = 80, ACID = 100)
rad_insulation = RAD_HEAVY_INSULATION
max_integrity = 50
+2 -2
View File
@@ -17,8 +17,8 @@ GLOBAL_LIST_INIT(icons_to_ignore_at_floor_init, list("damaged1","damaged2","dama
plane = FLOOR_PLANE
var/icon_regular_floor = "floor" //used to remember what icon the tile should have by default
var/icon_plating = "plating"
thermal_conductivity = 0.040
heat_capacity = 10000
thermal_conductivity = 0.020
heat_capacity = 100000
flags = NO_SCREENTIPS
var/lava = 0
var/broken = FALSE
+1
View File
@@ -29,6 +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/can_dismantle_with_welder = TRUE
var/hardness = 40 //lower numbers are harder. Used to determine the probability of a hulk smashing through.
@@ -17,6 +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
var/d_state = RWALL_INTACT
var/can_be_reinforced = 1
@@ -41,6 +41,12 @@
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