mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-01-06 07:22:15 +00:00
Meteors and Space dust (now that they work again) will no longer have an effect on singularity containment. Field generators and Emitters are protected.
I added a check to meteor and space dust Bump() directly because changing ex_act() on the machines themselves would make the machines immune to bombs and C4. Hopefully fixes issue 716. light/process() was added back in causing lights to use power as they were meant to. Recently lights have been made brighter causing more power to be drained. As a result the engineering APC would not last very long. The station using a lot of power is a good thing since the singularity produces an incredible amount of power, so to keep this higher power demand but still give engineers a fighting chance to set up the singularity, I've bumped up the engineering APC's starting battery power. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4401 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -97,10 +97,12 @@ The "dust" will damage the hull of the station causin minor hull breaches.
|
||||
shake_camera(M, 3, 1)
|
||||
if (A)
|
||||
playsound(src.loc, 'meteorimpact.ogg', 40, 1)
|
||||
|
||||
if(ismob(A))
|
||||
A.meteorhit(src)//This should work for now I guess
|
||||
else
|
||||
A.ex_act(strength)
|
||||
else if(!istype(A,/obj/machinery/emitter) && !istype(A,/obj/machinery/field_generator)) //Protect the singularity from getting released every round!
|
||||
A.ex_act(strength) //Changing emitter/field gen ex_act would make it immune to bombs and C4
|
||||
|
||||
life--
|
||||
if(life <= 0)
|
||||
walk(src,0)
|
||||
|
||||
@@ -111,7 +111,13 @@
|
||||
A.meteorhit(src)
|
||||
playsound(src.loc, 'meteorimpact.ogg', 40, 1)
|
||||
if (--src.hits <= 0)
|
||||
if(prob(15))// && !istype(A, /obj/structure/grille))
|
||||
|
||||
//Prevent meteors from blowing up the singularity's containment.
|
||||
//Changing emitter and generator ex_act would result in them being bomb and C4 proof.
|
||||
if(!istype(A,/obj/machinery/emitter) && \
|
||||
!istype(A,/obj/machinery/field_generator) && \
|
||||
prob(15))
|
||||
|
||||
explosion(src.loc, 4, 5, 6, 7, 0)
|
||||
playsound(src.loc, "explosion", 50, 1)
|
||||
del(src)
|
||||
@@ -133,6 +139,13 @@
|
||||
|
||||
Bump(atom/A)
|
||||
spawn(0)
|
||||
//Prevent meteors from blowing up the singularity's containment.
|
||||
//Changing emitter and generator ex_act would result in them being bomb and C4 proof
|
||||
if(!istype(A,/obj/machinery/emitter) && \
|
||||
!istype(A,/obj/machinery/field_generator))
|
||||
if(--src.hits <= 0)
|
||||
del(src) //Dont blow up singularity containment if we get stuck there.
|
||||
|
||||
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)
|
||||
@@ -150,4 +163,50 @@
|
||||
if(istype(W, /obj/item/weapon/pickaxe))
|
||||
del(src)
|
||||
return
|
||||
..()
|
||||
..()
|
||||
|
||||
|
||||
//Testing purposes only!
|
||||
/obj/item/weapon/meteorgun
|
||||
name = "Meteor Gun"
|
||||
desc = "This beast fires meteors!. TESTING PURPOSES ONLY, This gun is <b>incomplete</b>!"
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
icon_state = "lasercannon"
|
||||
item_state = "gun"
|
||||
|
||||
/obj/item/weapon/attack_self()
|
||||
var/start_x = usr.loc.x
|
||||
var/start_y = usr.loc.y
|
||||
var/start_z = usr.loc.z
|
||||
var/end_x = 0
|
||||
var/end_y = 0
|
||||
var/end_z = 0
|
||||
|
||||
switch(usr.dir)
|
||||
if(NORTH)
|
||||
end_x = start_x
|
||||
end_y = world.maxy-TRANSITIONEDGE
|
||||
if(SOUTH)
|
||||
end_x = start_x
|
||||
end_y = TRANSITIONEDGE
|
||||
if(EAST)
|
||||
end_x = world.maxx-TRANSITIONEDGE
|
||||
end_y = start_y
|
||||
if(WEST)
|
||||
end_x = TRANSITIONEDGE
|
||||
end_y = start_y
|
||||
else //north
|
||||
end_x = start_x
|
||||
end_y = TRANSITIONEDGE
|
||||
end_z = start_z
|
||||
|
||||
var/start = locate(start_x, start_y, start_z)
|
||||
var/end = locate(end_x, end_y, end_z)
|
||||
var/obj/effect/meteor/M = new /obj/effect/meteor(start)
|
||||
|
||||
M.dest = end
|
||||
|
||||
spawn(0)
|
||||
walk_towards(M, M.dest, 1)
|
||||
|
||||
return
|
||||
@@ -40,6 +40,8 @@
|
||||
/obj/machinery/containment_field/ex_act(severity)
|
||||
return 0
|
||||
|
||||
/obj/machinery/containment_field/meteorhit()
|
||||
return 0
|
||||
|
||||
/obj/machinery/containment_field/HasProximity(atom/movable/AM as mob|obj)
|
||||
if(istype(AM,/mob/living/silicon) && prob(40))
|
||||
|
||||
@@ -80,6 +80,8 @@
|
||||
src.use_power = 1 */
|
||||
return 1
|
||||
|
||||
/obj/machinery/containment_field/meteorhit()
|
||||
return 0
|
||||
|
||||
/obj/machinery/emitter/process()
|
||||
if(stat & (NOPOWER|BROKEN))
|
||||
|
||||
@@ -163,6 +163,8 @@ field_generator power level display
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/machinery/containment_field/meteorhit()
|
||||
return 0
|
||||
|
||||
/obj/machinery/field_generator/bullet_act(var/obj/item/projectile/Proj)
|
||||
if(Proj.flag != "bullet")
|
||||
|
||||
Reference in New Issue
Block a user