Skip to content

Commit

Permalink
Reactor blowout tweaks (#21906)
Browse files Browse the repository at this point in the history
* cr

* Update reactor.dm
  • Loading branch information
warface1234455 authored Apr 27, 2024
1 parent a385813 commit ba95099
Showing 1 changed file with 17 additions and 5 deletions.
22 changes: 17 additions & 5 deletions code/modules/power/reactor/reactor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
var/next_flicker = 0 //Light flicker timer
var/base_power_modifier = REACTOR_POWER_FLAVOURISER
var/slagged = FALSE //Is this reactor even usable any more?
var/explosion_power = 7 //The explosion strength
//Console statistics.
var/last_coolant_temperature = 0
var/last_output_temperature = 0
Expand Down Expand Up @@ -601,21 +602,32 @@
var/turf/lowest_turf = GET_TURF_BELOW(lower_turf)
if(lowest_turf) // WE NEED TO GO DEEPER
new /obj/structure/reactor_corium(lower_turf)
explosion(get_turf(src), 0, 5, 10, 20, TRUE, TRUE)
explosion(get_turf(src), GLOB.MAX_EX_DEVESTATION_RANGE, GLOB.MAX_EX_HEAVY_RANGE, GLOB.MAX_EX_LIGHT_RANGE, GLOB.MAX_EX_FLASH_RANGE)
radiation_pulse(src, (K+1)*temperature*get_fuel_power()*has_fuel()/(REACTOR_MAX_CRITICALITY*REACTOR_MAX_FUEL_RODS))
shockwave()

//Failure condition 2: Blowout. Achieved by reactor going over-pressured. This is a round-ender because it requires more fuckery to achieve.
/obj/machinery/atmospherics/components/trinary/nuclear_reactor/proc/blowout()
explosion(get_turf(src), GLOB.MAX_EX_DEVESTATION_RANGE, GLOB.MAX_EX_HEAVY_RANGE, GLOB.MAX_EX_LIGHT_RANGE, GLOB.MAX_EX_FLASH_RANGE)
var/explosion_mod = clamp(log(10, pressure), 1, 10)
explosion(get_turf(src), explosion_power * explosion_mod * 0.5, explosion_power * explosion_mod + 2, explosion_power * explosion_mod + 4, explosion_power * explosion_mod + 6, 1, 1)
meltdown() //Double kill.
relay('sound/effects/reactor/explode.ogg')
SSweather.run_weather("nuclear fallout", src.z)
for(var/X in GLOB.landmarks_list)
if(istype(X, /obj/effect/landmark/nuclear_waste_spawner))
var/obj/effect/landmark/nuclear_waste_spawner/WS = X
if(is_station_level(WS.z)) //Begin the SLUDGING
WS.range *= 3
WS.range *= log(temperature)+K
WS.fire()

/obj/machinery/atmospherics/components/trinary/nuclear_reactor/proc/shockwave()
var/atom/movable/gravity_lens/shockwave = new(src)
shockwave.transform = matrix().Scale(0.5)
shockwave.pixel_x = -240
shockwave.pixel_y = -240
animate(shockwave, alpha = 0, transform = matrix().Scale(20), time = 10 SECONDS, easing = QUAD_EASING)
QDEL_IN(shockwave, 10.5 SECONDS)

/obj/machinery/atmospherics/components/trinary/nuclear_reactor/update_icon(updates=ALL)
. = ..()
icon_state = "reactor_off"
Expand Down Expand Up @@ -962,15 +974,15 @@
weather_color = "green"
telegraph_sound = null
weather_sound = 'sound/effects/reactor/falloutwind.ogg'
end_duration = 100
end_duration = 200
area_type = /area
protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer,
/area/ai_monitored/turret_protected/ai, /area/shuttle)
end_message = "<span class='notice'>The ash stops falling.</span>"
immunity_type = "rad"

/datum/weather/nuclear_fallout/weather_act(mob/living/L)
L.rad_act(100)
L.rad_act(2000)

/datum/weather/nuclear_fallout/telegraph()
..()
Expand Down

0 comments on commit ba95099

Please sign in to comment.