mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-01-01 21:13:07 +00:00
Merge remote-tracking branch 'upstream/master' into dev-freeze
Conflicts: code/game/objects/items/weapons/tanks/tanks.dm code/setup.dm
This commit is contained in:
@@ -487,28 +487,34 @@ steam.start() -- spawns the effect
|
||||
M.Weaken(rand(1,5))
|
||||
return
|
||||
else
|
||||
var/devastation = -1
|
||||
var/devst = -1
|
||||
var/heavy = -1
|
||||
var/light = -1
|
||||
var/flash = -1
|
||||
|
||||
// Clamp all values to max_explosion_range
|
||||
// Clamp all values to fractions of max_explosion_range, following the same pattern as for tank transfer bombs
|
||||
if (round(amount/12) > 0)
|
||||
devastation = min (max_explosion_range, devastation + round(amount/12))
|
||||
devst = devst + amount/12
|
||||
|
||||
if (round(amount/6) > 0)
|
||||
heavy = min (max_explosion_range, heavy + round(amount/6))
|
||||
heavy = heavy + amount/6
|
||||
|
||||
if (round(amount/3) > 0)
|
||||
light = min (max_explosion_range, light + round(amount/3))
|
||||
light = light + amount/3
|
||||
|
||||
if (flash && flashing_factor)
|
||||
flash += (round(amount/4) * flashing_factor)
|
||||
if (flashing && flashing_factor)
|
||||
flash = (amount/4) * flashing_factor
|
||||
|
||||
for(var/mob/M in viewers(8, location))
|
||||
M << "\red The solution violently explodes."
|
||||
|
||||
explosion(location, devastation, heavy, light, flash)
|
||||
explosion(
|
||||
location,
|
||||
round(min(devst, BOMBCAP_DVSTN_RADIUS)),
|
||||
round(min(heavy, BOMBCAP_HEAVY_RADIUS)),
|
||||
round(min(light, BOMBCAP_LIGHT_RADIUS)),
|
||||
round(min(flash, BOMBCAP_FLASH_RADIUS))
|
||||
)
|
||||
|
||||
proc/holder_damage(var/atom/holder)
|
||||
if(holder)
|
||||
|
||||
@@ -16,16 +16,16 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
|
||||
explosion_rec(epicenter, power)
|
||||
return
|
||||
|
||||
var/start = world.timeofday
|
||||
epicenter = get_turf(epicenter)
|
||||
if(!epicenter) return
|
||||
|
||||
///// Z-Level Stuff
|
||||
if(z_transfer && (devastation_range > 0 || heavy_impact_range > 0))
|
||||
//transfer the explosion in both directions
|
||||
explosion_z_transfer(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range)
|
||||
///// Z-Level Stuff
|
||||
|
||||
var/start = world.timeofday
|
||||
epicenter = get_turf(epicenter)
|
||||
if(!epicenter) return
|
||||
|
||||
var/max_range = max(devastation_range, heavy_impact_range, light_impact_range, flash_range)
|
||||
//playsound(epicenter, 'sound/effects/explosionfar.ogg', 100, 1, round(devastation_range*2,1) )
|
||||
//playsound(epicenter, "explosion", 100, 1, round(devastation_range,1) )
|
||||
|
||||
@@ -261,19 +261,22 @@
|
||||
if(!istype(src.loc,/obj/item/device/transfer_valve))
|
||||
message_admins("Explosive tank rupture! last key to touch the tank was [src.fingerprintslast].")
|
||||
log_game("Explosive tank rupture! last key to touch the tank was [src.fingerprintslast].")
|
||||
//world << "\blue[x],[y] tank is exploding: [pressure] kPa"
|
||||
|
||||
//Give the gas a chance to build up more pressure through reacting
|
||||
air_contents.react()
|
||||
air_contents.react()
|
||||
air_contents.react()
|
||||
|
||||
pressure = air_contents.return_pressure()
|
||||
var/range = (pressure-TANK_FRAGMENT_PRESSURE)/TANK_FRAGMENT_SCALE
|
||||
range = min(range, max_explosion_range) // was 8 - - - Changed to a configurable define -- TLE
|
||||
var/turf/epicenter = get_turf(loc)
|
||||
|
||||
//world << "\blue Exploding Pressure: [pressure] kPa, intensity: [range]"
|
||||
|
||||
explosion(epicenter, round(range*0.25), round(range*0.5), round(range), round(range*1.5))
|
||||
explosion(
|
||||
get_turf(loc),
|
||||
round(min(BOMBCAP_DVSTN_RADIUS, range*0.25)),
|
||||
round(min(BOMBCAP_HEAVY_RADIUS, range*0.50)),
|
||||
round(min(BOMBCAP_LIGHT_RADIUS, range*1.00)),
|
||||
round(min(BOMBCAP_FLASH_RADIUS, range*1.50)),
|
||||
)
|
||||
qdel(src)
|
||||
|
||||
else if(pressure > TANK_RUPTURE_PRESSURE)
|
||||
|
||||
Reference in New Issue
Block a user