mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 06:57:42 +01:00
added energy shields, added shield generators, shield capacitors, made both buildable with high level research, commented explosion changes (too laggy).
Signed-off-by: caelaislinn <cael_aislinn@yahoo.com.au>
This commit is contained in:
@@ -36,7 +36,8 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
|
||||
var/list/fTurfs = list() //Holds turfs to loop through for mobs to flash. (Hehehe, dirty)
|
||||
|
||||
//cael - replaced range() and circlerange() with FloodFill() to prevent explosions getting through shielding (ultrarealism mode)
|
||||
//if testing indicates this is adding too much lag, roll back all shield handling
|
||||
//also lag is pre'y bad
|
||||
/*
|
||||
if(roundExplosions)
|
||||
if(/obj/effect/energy_field in range(src, max(devastation_range, heavy_impact_range, light_impact_range)))
|
||||
fTurfs = ExplosionCircleFloodFill(epicenter,max(devastation_range, heavy_impact_range, light_impact_range, flash_range))
|
||||
@@ -68,6 +69,45 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
|
||||
hTurfs = range(epicenter,heavy_impact_range) - dTurfs
|
||||
lTurfs = range(epicenter,light_impact_range) - dTurfs - hTurfs
|
||||
|
||||
//add some stress to nearby shields
|
||||
for(var/obj/effect/energy_field/E in range(epicenter, devastation_range))
|
||||
E.Stress(3)
|
||||
for(var/obj/effect/energy_field/E in range(epicenter, heavy_impact_range))
|
||||
E.Stress(2)
|
||||
for(var/obj/effect/energy_field/E in range(epicenter, light_impact_range))
|
||||
E.Stress(1)*/
|
||||
|
||||
if(roundExplosions)
|
||||
if(/obj/effect/energy_field in range(src, max(devastation_range, heavy_impact_range, light_impact_range)))
|
||||
fTurfs = circlerange(epicenter,max(devastation_range, heavy_impact_range, light_impact_range, flash_range))
|
||||
dTurfs = circlerange(epicenter,devastation_range)
|
||||
hTurfs = circlerange(epicenter,heavy_impact_range) - dTurfs
|
||||
lTurfs = circlerange(epicenter,light_impact_range) - dTurfs - hTurfs
|
||||
else
|
||||
fTurfs = circlerange(epicenter,max(devastation_range, heavy_impact_range, light_impact_range, flash_range))
|
||||
dTurfs = circlerange(epicenter,devastation_range)
|
||||
hTurfs = circlerange(epicenter,heavy_impact_range) - dTurfs
|
||||
lTurfs = circlerange(epicenter,light_impact_range) - dTurfs - hTurfs
|
||||
|
||||
//add some stress to nearby shields
|
||||
for(var/obj/effect/energy_field/E in circlerange(epicenter, devastation_range))
|
||||
E.Stress(3)
|
||||
for(var/obj/effect/energy_field/E in circlerange(epicenter, heavy_impact_range))
|
||||
E.Stress(2)
|
||||
for(var/obj/effect/energy_field/E in circlerange(epicenter, light_impact_range))
|
||||
E.Stress(1)
|
||||
else
|
||||
if(/obj/effect/energy_field in range(src, max(devastation_range, heavy_impact_range, light_impact_range)))
|
||||
fTurfs = range(epicenter,max(devastation_range, heavy_impact_range, light_impact_range, flash_range))
|
||||
dTurfs = range(epicenter,devastation_range)
|
||||
hTurfs = range(epicenter,heavy_impact_range) - dTurfs
|
||||
lTurfs = range(epicenter,light_impact_range) - dTurfs - hTurfs
|
||||
else
|
||||
fTurfs = range(epicenter,max(devastation_range, heavy_impact_range, light_impact_range, flash_range))
|
||||
dTurfs = range(epicenter,devastation_range)
|
||||
hTurfs = range(epicenter,heavy_impact_range) - dTurfs
|
||||
lTurfs = range(epicenter,light_impact_range) - dTurfs - hTurfs
|
||||
|
||||
//add some stress to nearby shields
|
||||
for(var/obj/effect/energy_field/E in range(epicenter, devastation_range))
|
||||
E.Stress(3)
|
||||
|
||||
Reference in New Issue
Block a user