Added big meteors, since the regular kind aren't proving sufficiently robust.

For the sanity of the admins, meteor explosions are no longer adminlogged.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1112 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
n3ophyt3@gmail.com
2011-02-24 03:22:18 +00:00
parent 38fb4e45fa
commit 12bd3f5b7f
2 changed files with 34 additions and 7 deletions

View File

@@ -66,10 +66,14 @@
var/obj/meteor/M
if(rand(50))
M = new /obj/meteor( pickedstart )
else
M = new /obj/meteor/small( pickedstart )
switch(rand(1, 100))
if(1 to 10)
M = new /obj/meteor/big( pickedstart )
if(11 to 75)
M = new /obj/meteor( pickedstart )
if(76 to 100)
M = new /obj/meteor/small( pickedstart )
M.dest = pickedgoal
spawn(0)
@@ -107,7 +111,7 @@
playsound(src.loc, 'meteorimpact.ogg', 40, 1)
if (--src.hits <= 0)
if(prob(15) && !istype(A, /obj/grille))
explosion(src.loc, 0, 1, 2, 3)
explosion(src.loc, 0, 1, 2, 3, 0)
playsound(src.loc, "explosion", 50, 1)
del(src)
return
@@ -118,3 +122,25 @@
if (severity < 4)
del(src)
return
/obj/meteor/big
name = "big meteor"
hits = 5
ex_act(severity)
return
Bump(atom/A)
spawn(0)
for(var/mob/M in range(10, src))
if(!M.stat && !istype(M, /mob/living/silicon/ai)) //bad idea to shake an ai's view
shake_camera(M, 3, 1)
if (A)
explosion(src.loc, 0, 1, 2, 3, 0)
playsound(src.loc, 'meteorimpact.ogg', 40, 1)
if (--src.hits <= 0)
if(prob(15) && !istype(A, /obj/grille))
explosion(src.loc, 1, 2, 3, 4, 0)
playsound(src.loc, "explosion", 50, 1)
del(src)
return

View File

@@ -1,4 +1,4 @@
proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range)
proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range, adminlog = 1)
if(!epicenter) return
spawn(0)
defer_powernet_rebuild = 1
@@ -7,7 +7,8 @@ proc/explosion(turf/epicenter, devastation_range, heavy_impact_range, light_impa
return explosion(epicenter, devastation_range, heavy_impact_range, light_impact_range, flash_range)
playsound(epicenter.loc, 'explosionfar.ogg', 100, 1, round(devastation_range*2,1) )
playsound(epicenter.loc, "explosion", 100, 1, round(devastation_range,1) )
message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ")
if (adminlog)
message_admins("Explosion with size ([devastation_range], [heavy_impact_range], [light_impact_range]) in area [epicenter.loc.name] ")
if(heavy_impact_range > 1)
var/datum/effects/system/explosion/E = new/datum/effects/system/explosion()