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:
caelaislinn
2012-06-15 01:14:40 +10:00
parent 2b9b845daf
commit 1da4ae4363
5 changed files with 582 additions and 1 deletions
+41 -1
View File
@@ -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)