diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 7205d0e850..393d3aee74 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -5,11 +5,11 @@ /var/list/meteors_normal = list(/obj/effect/meteor/dust=3, /obj/effect/meteor/medium=8, /obj/effect/meteor/big=3, \ /obj/effect/meteor/flaming=1, /obj/effect/meteor/irradiated=3) //for normal meteor event -/var/list/meteors_threatening = list(/obj/effect/meteor/medium=4, /obj/effect/meteor/big=8, \ - /obj/effect/meteor/flaming=3, /obj/effect/meteor/irradiated=3) //for threatening meteor event +/var/list/meteors_threatening = list(/obj/effect/meteor/medium=5, /obj/effect/meteor/big=10, \ + /obj/effect/meteor/flaming=3, /obj/effect/meteor/irradiated=3, /obj/effect/meteor/emp=3) //for threatening meteor event /var/list/meteors_catastrophic = list(/obj/effect/meteor/medium=5, /obj/effect/meteor/big=75, \ - /obj/effect/meteor/flaming=10, /obj/effect/meteor/irradiated=10, /obj/effect/meteor/tunguska = 1) //for catastrophic meteor event + /obj/effect/meteor/flaming=10, /obj/effect/meteor/irradiated=10, /obj/effect/meteor/emp=10, /obj/effect/meteor/tunguska = 1) //for catastrophic meteor event /var/list/meteors_dust = list(/obj/effect/meteor/dust) //for space dust event @@ -38,7 +38,6 @@ var/Me = pickweight(meteortypes) var/obj/effect/meteor/M = new Me(pickedstart) M.dest = pickedgoal - M.z_original = startLevel spawn(0) walk_towards(M, M.dest, 1) return @@ -97,11 +96,16 @@ var/dest pass_flags = PASSTABLE var/heavy = 0 - var/z_original = 1 + var/z_original var/meteordrop = /obj/item/weapon/ore/iron var/dropamt = 2 +/obj/effect/meteor/New() + ..() + z_original = z + + /obj/effect/meteor/Move() if(z != z_original || loc == dest) qdel(src) @@ -151,7 +155,7 @@ hits-- if(hits <= 0) make_debris() - meteor_effect(heavy) + meteor_effect() qdel(src) /obj/effect/meteor/ex_act() @@ -168,8 +172,8 @@ var/obj/item/O = new meteordrop(get_turf(src)) O.throw_at(dest, 5, 10) -/obj/effect/meteor/proc/meteor_effect(var/effect=1) - if(effect) +/obj/effect/meteor/proc/meteor_effect() + if(heavy) for(var/mob/M in player_list) var/turf/T = get_turf(M) if(!T || T.z != src.z) @@ -197,7 +201,7 @@ dropamt = 3 /obj/effect/meteor/medium/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 0, 1, 2, 3, 0) //Large-sized @@ -209,7 +213,7 @@ dropamt = 4 /obj/effect/meteor/big/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 1, 2, 3, 4, 0) //Flaming meteor @@ -221,7 +225,7 @@ meteordrop = /obj/item/weapon/ore/phoron /obj/effect/meteor/flaming/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 1, 2, 3, 4, 0, 0, 5) //Radiation meteor @@ -233,12 +237,25 @@ /obj/effect/meteor/irradiated/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 0, 0, 4, 3, 0) new /obj/effect/decal/cleanable/greenglow(get_turf(src)) for(var/mob/living/L in view(5, src)) L.apply_effect(40, IRRADIATE) +/obj/effect/meteor/emp + name = "conducting meteor" + icon_state = "glowing_blue" + desc = "Hide your floppies!" + meteordrop = /obj/item/weapon/ore/osmium + dropamt = 3 + +/obj/effect/meteor/emp/meteor_effect() + ..() + // Best case scenario: Comparable to a low-yield EMP grenade. + // Worst case scenario: Comparable to a standard yield EMP grenade. + empulse(src, rand(2, 4), rand(4, 10)) + //Station buster Tunguska /obj/effect/meteor/tunguska name = "tunguska meteor" @@ -250,7 +267,7 @@ meteordrop = /obj/item/weapon/ore/phoron /obj/effect/meteor/tunguska/meteor_effect() - ..(heavy) + ..() explosion(src.loc, 5, 10, 15, 20, 0) /obj/effect/meteor/tunguska/Bump() diff --git a/icons/obj/meteor.dmi b/icons/obj/meteor.dmi index b9a83d510e..27ebc22445 100644 Binary files a/icons/obj/meteor.dmi and b/icons/obj/meteor.dmi differ