Forcefully deprecate meteor_hit()

meteor_hit() is a textbook example of snowflake. What you have here is a
proc linked to a single entity (the small meteor) which shouldn't even
have it (ever since I reworked meteors, small meteors explode) that is
present in FIFTY. FUCKING. FILES.

Since an explosion more than clearly does the damage we want done on
meteor impact, it is more than logical to remove it and lighten our code
of obsolete and obscuranting procs

For the handful of times where it isn't possible to straight up remove
it (immovable rod, dust, small meteor), the code was quickly patched by
making it fire ex_act(2), given that small meteors perform
explosion(src.loc, -1, 1, 3, 4, 0)

Doing it quick and dirty because otherwise it's going to cause conflicts
everywhere
This commit is contained in:
dylanstrategie
2015-06-29 16:16:03 +02:00
parent 03383f1fc0
commit 8f1132f443
50 changed files with 26 additions and 369 deletions

View File

@@ -18,11 +18,6 @@
/obj/effect/energy_field/bullet_act(var/obj/item/projectile/Proj)
Stress(Proj.damage / 10)
/obj/effect/energy_field/meteorhit(obj/effect/meteor/M as obj)
if(M)
walk(M,0)
Stress(2)
/obj/effect/energy_field/proc/Stress(var/severity)
strength -= severity

View File

@@ -180,10 +180,6 @@ var/global/list/ghdel_profiling = list()
return flags & INSERT_CONTAINER
*/
/atom/proc/meteorhit(obj/meteor as obj)
return
/atom/proc/allow_drop()
return 1

View File

@@ -357,14 +357,6 @@ var/global/list/datum/stack_recipe/snow_recipes = list (
qdel(src)
return
/obj/structure/barricade/snow/meteorhit()
visible_message("<span class='danger'>\the [src] is blown apart!</span>")
new /obj/item/stack/sheet/snow(get_turf(src), 1)
new /obj/item/stack/sheet/snow(get_turf(src), 1)
new /obj/item/stack/sheet/snow(get_turf(src), 1)
del(src)
return
/obj/structure/barricade/snow/blob_act()
src.health -= 25
if (src.health <= 0)

View File

@@ -34,7 +34,7 @@ In my current plan for it, 'solid' will be defined as anything with density == 1
else if (istype(clong, /mob))
if(clong.density || prob(10))
clong.meteorhit(src)
clong.ex_act(2)
else
del(src)

View File

@@ -99,7 +99,7 @@ The "dust" will damage the hull of the station causin minor hull breaches.
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 40, 1)
if(ismob(A))
A.meteorhit(src)//This should work for now I guess
A.ex_act(2)
else if(!istype(A,/obj/machinery/power/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

View File

@@ -1413,11 +1413,6 @@ It is possible to destroy the net by the occupant or someone else.
healthcheck()
return
meteorhit()
health-=50
healthcheck()
return
hitby(AM as mob|obj)
..()
for(var/mob/O in viewers(src, null))

View File

@@ -107,11 +107,10 @@
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, 2) //Medium hit
if(A)
A.meteorhit(src)
playsound(get_turf(src), "explosion", 50, 1) //Medium boom
explosion(src.loc, 2, 4, 6, 8, 0) //Medium meteor, medium boom
qdel(src)
playsound(get_turf(src), "explosion", 50, 1) //Medium boom
explosion(src.loc, 2, 4, 6, 8, 0) //Medium meteor, medium boom
qdel(src)
/obj/effect/meteor/ex_act(severity)
@@ -129,12 +128,10 @@
for(var/mob/M in range(8, src))
if(!M.stat && !istype(M, /mob/living/silicon/ai)) //bad idea to shake an ai's view
shake_camera(M, 2, 1) //Poof
if(A)
A.meteorhit(src)
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 10, 1)
explosion(src.loc, -1, 1, 3, 4, 0) //Tiny meteor doesn't cause too much damage
qdel(src)
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 10, 1)
explosion(src.loc, -1, 1, 3, 4, 0) //Tiny meteor doesn't cause too much damage
qdel(src)
/obj/effect/meteor/big
name = "big meteor"
@@ -149,10 +146,10 @@
for(var/mob/M in range(15, src)) //Now that's visible
if(!M.stat && !istype(M, /mob/living/silicon/ai)) //bad idea to shake an ai's view
shake_camera(M, 7, 3) //Massive shellshock
if(A)
explosion(src.loc, 4, 6, 8, 8, 0) //You have been visited by the nuclear meteor
playsound(get_turf(src), "explosion", 100, 1) //Deafening boom, default is 50
qdel(src)
explosion(src.loc, 4, 6, 8, 8, 0) //You have been visited by the nuclear meteor
playsound(get_turf(src), "explosion", 100, 1) //Deafening boom, default is 50
qdel(src)
/obj/effect/meteor/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(istype(W, /obj/item/weapon/pickaxe))

View File

@@ -246,11 +246,6 @@
healthcheck()
..()
/obj/machinery/portable_atmospherics/canister/meteorhit(var/obj/O as obj)
src.health = 0
healthcheck()
return
/obj/machinery/portable_atmospherics/canister/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if(iswelder(W) && src.destroyed)
if(weld(W, user))

View File

@@ -138,12 +138,6 @@
..()
healthcheck()
/obj/machinery/bot/meteorhit()
if(flags & INVULNERABLE)
return
src.explode()
return
/obj/machinery/bot/blob_act()
if(flags & INVULNERABLE)
return

View File

@@ -190,10 +190,6 @@
emergencyShutdown()
..()
/obj/machinery/computer/HolodeckControl/meteorhit(var/obj/O as obj)
emergencyShutdown()
..()
/obj/machinery/computer/HolodeckControl/emp_act(severity)
emergencyShutdown()
..()

View File

@@ -32,15 +32,6 @@
return 0
return 1
/obj/machinery/computer/meteorhit(var/obj/O as obj)
for(var/x in verbs)
verbs -= x
set_broken()
var/datum/effect/effect/system/smoke_spread/smoke = new /datum/effect/effect/system/smoke_spread()
smoke.set_up(5, 0, src)
smoke.start()
return
/obj/machinery/computer/emp_act(severity)
if(prob(20/severity)) set_broken()
..()

View File

@@ -106,14 +106,6 @@ for reference:
qdel(src)
return
meteorhit()
visible_message("<span class='danger'>The barricade is smashed apart!</span>")
new /obj/item/stack/sheet/wood(get_turf(src))
new /obj/item/stack/sheet/wood(get_turf(src))
new /obj/item/stack/sheet/wood(get_turf(src))
del(src)
return
blob_act()
src.health -= 25
if (src.health <= 0)
@@ -248,10 +240,6 @@ for reference:
anchored = !anchored
icon_state = "barrier[src.locked]"
/obj/machinery/deployable/barrier/meteorhit()
src.explode()
return
/obj/machinery/deployable/barrier/blob_act()
src.health -= 25
if (src.health <= 0)

View File

@@ -120,10 +120,6 @@ var/list/all_doors = list()
return
/obj/machinery/door/meteorhit(obj/M as obj)
open()
return
/obj/machinery/door/attack_ai(mob/user as mob)
add_hiddenprint(user)
attack_hand(user)

View File

@@ -174,10 +174,6 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
del(src)
return
/obj/machinery/hologram/meteorhit()
del(src)
return
/obj/machinery/hologram/Destroy()
if(hologram)
src:clear_holo()

View File

@@ -58,10 +58,6 @@
if (prob(50))
qdel(src)
/obj/machinery/snackbar_machine/meteorhit()
qdel(src)
return
/obj/machinery/snackbar_machine/power_change()
if(powered())
stat &= ~NOPOWER

View File

@@ -59,9 +59,6 @@
opacity = 1
spawn(20) if(src) opacity = 0
/obj/machinery/shield/meteorhit()
src.health -= max_health*0.75 //3/4 health as damage
if(src.health <= 0)
visible_message("<span class='notice'>The [src] dissapates</span>")
del(src)
@@ -199,13 +196,6 @@
update_icon()
return
/obj/machinery/shieldgen/meteorhit(obj/O as obj)
src.health -= max_health*0.25 //A quarter of the machine's health
if (prob(5))
src.malfunction = 1
src.checkhp()
return
/obj/machinery/shieldgen/ex_act(severity)
switch(severity)
if(1.0)

View File

@@ -522,10 +522,6 @@
del src
return
meteorhit()
del src
return
proc/update_health()
if(src.health<=0)
del src

View File

@@ -680,10 +680,6 @@
take_damage(30, "brute")
return
//TODO
/obj/mecha/meteorhit()
return ex_act(rand(1,3))//should do for now
/obj/mecha/emp_act(severity)
if(get_charge())
use_power((cell.charge/2)/severity)

View File

@@ -85,11 +85,6 @@
healthcheck()
return
/obj/effect/alien/resin/meteorhit()
health-=50
healthcheck()
return
/obj/effect/alien/resin/hitby(AM as mob|obj)
..()
for(var/mob/O in viewers(src, null))

View File

@@ -17,9 +17,6 @@ obj/structure/ex_act(severity)
if(3.0)
return
obj/structure/meteorhit(obj/O as obj)
del(src)
/obj/structure/Destroy()
if(hascall(src, "unbuckle"))
src:unbuckle()

View File

@@ -260,13 +260,6 @@
A.loc = src.loc
del(src)
/obj/structure/closet/meteorhit(obj/O as obj)
if(O.icon_state == "flaming")
for(var/mob/M in src)
M.meteorhit(O)
src.dump_contents()
del(src)
/obj/structure/closet/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(src.opened)
if(istype(W, /obj/item/weapon/grab))

View File

@@ -110,12 +110,6 @@
for(var/mob/M in src)
shatter(M)
/obj/structure/closet/statue/meteorhit(obj/O as obj)
if(O.icon_state == "flaming")
for(var/mob/M in src)
M.meteorhit(O)
shatter(M)
/obj/structure/closet/statue/attackby(obj/item/I as obj, mob/user as mob)
health -= I.force
visible_message("<span class='warning'>[user] strikes [src] with [I].</span>")

View File

@@ -136,13 +136,6 @@
if(occupant) dump()
del(src)
/obj/structure/displaycase/meteorhit(obj/O as obj)
getFromPool(/obj/item/weapon/shard, loc)
if(occupant) dump()
del(src)
/obj/structure/displaycase/proc/healthcheck()
if (src.health <= 0)
if (!( src.destroyed ))

View File

@@ -53,10 +53,6 @@
health -= rand(initial(health)*0.8, initial(health)*3) //Grille will always be blasted, but chances of leaving things over
healthcheck(hitsound = 1)
/obj/structure/grille/meteorhit()
health -= rand(initial(health)*0.8, initial(health)*3)
healthcheck(hitsound = 1)
/obj/structure/grille/Bumped(atom/user)
if(ismob(user))
shock(user, 60) //Give the user the benifit of the doubt

View File

@@ -39,13 +39,6 @@
Break()
qdel(src)
/obj/structure/lamarr/meteorhit(obj/O as obj)
getFromPool(/obj/item/weapon/shard, loc)
Break()
qdel(src)
/obj/structure/lamarr/proc/healthcheck()
if (src.health <= 0)
if (!( src.destroyed ))

View File

@@ -171,11 +171,6 @@ obj/structure/safe/blob_act()
obj/structure/safe/ex_act(severity)
return
obj/structure/safe/meteorhit(obj/O as obj)
return
//FLOOR SAFES
/obj/structure/safe/floor
name = "floor safe"

View File

@@ -642,10 +642,6 @@
user.drop_item(W, src.loc)
return 1
/obj/structure/rack/meteorhit(obj/O as obj)
del(src)
/obj/structure/table/attack_hand(mob/user)
if(M_HULK in user.mutations)
visible_message("<span class='danger'>[user] smashes [src] apart!</span>")

View File

@@ -124,11 +124,6 @@
health -= rand(30, 50)
healthcheck()
/obj/structure/window/meteorhit()
health -= rand(100, 150)
healthcheck()
/obj/structure/window/CheckExit(var/atom/movable/O, var/turf/target)
if(istype(O) && O.checkpass(PASSGLASS))

View File

@@ -354,15 +354,6 @@
visible_message("<span class='danger'>\The [src] spontaenously combusts!.</span>") //!!OH SHIT!!
return
/turf/simulated/wall/meteorhit(obj/M as obj)
if(prob(15) && !rotting)
dismantle_wall()
else if(prob(70) && !rotting)
ChangeTurf(/turf/simulated/floor/plating)
else
ReplaceWithLattice()
return 0
/turf/simulated/wall/Destroy()
for(var/obj/effect/E in src)
if(E.name == "Wallrot")

View File

@@ -84,18 +84,6 @@
return
/mob/living/carbon/alien/humanoid/meteorhit(O as obj)
if(flags & INVULNERABLE)
return
visible_message("<span class='warning'>\The [src] has been hit by [O]</span>")
if(health > 0)
adjustFireLoss((istype(O, /obj/effect/meteor/small) ? 10 : 25))
adjustFireLoss(30)
updatehealth()
return
/mob/living/carbon/alien/humanoid/attack_paw(mob/living/carbon/monkey/M as mob)
if(!ismonkey(M))
return//Fix for aliens receiving double messages when attacking other aliens.

View File

@@ -94,16 +94,6 @@
/mob/living/carbon/alien/larva/attack_ui(slot_id)
return
/mob/living/carbon/alien/larva/meteorhit(O as obj)
if(flags & INVULNERABLE)
return
visible_message("<span class='warning'>\The [src] has been hit by [O]")
if(health > 0)
adjustBruteLoss((istype(O, /obj/effect/meteor/small) ? 10 : 25)) //You fucking what
adjustFireLoss(30)
updatehealth()
return
/mob/living/carbon/alien/larva/attack_animal(mob/living/simple_animal/M as mob)
if(M.melee_damage_upper == 0)
M.emote("[M.friendly] [src]")

View File

@@ -279,25 +279,6 @@
apply_damage(rand(30,40), BRUTE, affecting, run_armor_check(affecting, "melee"))
return
/mob/living/carbon/human/meteorhit(O as obj)
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
M.show_message("<span class='warning'>[src] has been hit by [O]</span>", 1)
if (health > 0)
var/datum/organ/external/affecting = get_organ(pick("chest", "chest", "chest", "head"))
if(!affecting) return
if (istype(O, /obj/effect/immovablerod))
if(affecting.take_damage(101, 0))
UpdateDamageIcon()
else
if(affecting.take_damage((istype(O, /obj/effect/meteor/small) ? 10 : 25), 30))
UpdateDamageIcon()
updatehealth()
return
/mob/living/carbon/human/attack_animal(mob/living/simple_animal/M as mob)
if(M.melee_damage_upper == 0)
M.emote("[M.friendly] [src]")

View File

@@ -373,21 +373,3 @@ emp_act
var/datum/organ/external/affecting = get_organ(ran_zone(dam_zone))
apply_damage(rand(30,40), BRUTE, affecting, run_armor_check(affecting, "melee"))
return
/mob/living/carbon/human/meteorhit(O as obj)
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
M.show_message("<span class='warning'>[src] has been hit by [O]</span>", 1)
if (health > 0)
var/datum/organ/external/affecting = get_organ(pick("chest", "chest", "chest", "head"))
if(!affecting) return
if (istype(O, /obj/effect/immovablerod))
if(affecting.take_damage(101, 0))
UpdateDamageIcon(1)
else
if(affecting.take_damage((istype(O, /obj/effect/meteor/small) ? 10 : 25), 30))
UpdateDamageIcon(1)
updatehealth()
return

View File

@@ -274,20 +274,6 @@
/mob/living/carbon/slime/attack_ui(slot)
return
/mob/living/carbon/slime/meteorhit(O as obj)
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
if ((M.client && !( M.blinded )))
M.show_message(text("<span class='warning'>[] has been hit by []</span>", src, O), 1)
if (health > 0)
adjustBruteLoss((istype(O, /obj/effect/meteor/small) ? 10 : 25))
adjustFireLoss(30)
updatehealth()
return
/mob/living/carbon/slime/attack_slime(mob/living/carbon/slime/M as mob)
if (!ticker)
M << "You cannot attack people before the game has started."

View File

@@ -329,19 +329,6 @@
..()
return
/mob/living/carbon/monkey/meteorhit(obj/O as obj)
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
M.show_message(text("<span class='warning'>[] has been hit by []</span>", src, O), 1)
if (health > 0)
var/shielded = 0
adjustBruteLoss(30)
if ((O.icon_state == "flaming" && !( shielded )))
adjustFireLoss(40)
health = 100 - getOxyLoss() - getToxLoss() - getFireLoss() - getBruteLoss()
return
//mob/living/carbon/monkey/bullet_act(var/obj/item/projectile/Proj)taken care of in living
/mob/living/carbon/monkey/getarmor(var/def_zone, var/type)

View File

@@ -422,19 +422,6 @@ var/list/ai_list = list()
return
/mob/living/silicon/ai/meteorhit(obj/O as obj)
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
M.show_message(text("<span class='warning'>[] has been hit by []</span>", src, O), 1)
//Foreach goto(19)
if (health > 0)
adjustBruteLoss(30)
if ((O.icon_state == "flaming"))
adjustFireLoss(40)
updatehealth()
return
/mob/living/silicon/ai/bullet_act(var/obj/item/projectile/Proj)
..(Proj)
updatehealth()

View File

@@ -173,18 +173,6 @@
// See software.dm for Topic()
/mob/living/silicon/pai/meteorhit(obj/O as obj)
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
M.show_message(text("<span class='warning'>[] has been hit by []</span>", src, O), 1)
if (src.health > 0)
src.adjustBruteLoss(30)
if ((O.icon_state == "flaming"))
src.adjustFireLoss(40)
src.updatehealth()
return
//mob/living/silicon/pai/bullet_act(var/obj/item/projectile/Proj)
/mob/living/silicon/pai/attack_alien(mob/living/carbon/alien/humanoid/M as mob)

View File

@@ -617,21 +617,6 @@
updatehealth()
/mob/living/silicon/robot/meteorhit(obj/O as obj)
if(flags & INVULNERABLE)
return
for(var/mob/M in viewers(src, null))
M.show_message(text("<span class='attack'>[src] has been hit by [O]</span>"), 1)
//Foreach goto(19)
if (health > 0)
adjustBruteLoss(30)
if ((O.icon_state == "flaming"))
adjustFireLoss(40)
updatehealth()
return
/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj)
..(Proj)
updatehealth()

View File

@@ -1176,11 +1176,6 @@ obj/machinery/power/apc/proc/autoset(var/val, var/on)
// damage and destruction acts
/obj/machinery/power/apc/meteorhit(var/obj/O as obj)
set_broken()
return
/obj/machinery/power/apc/emp_act(severity)
if(cell)
cell.emp_act(severity)

View File

@@ -39,9 +39,6 @@
/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))
shock(AM)

View File

@@ -188,10 +188,6 @@
return 1
/obj/machinery/containment_field/meteorhit()
return 0
/obj/machinery/power/emitter/process()
if(!anchored) //If it got unanchored "inexplicably"... fucking badmins

View File

@@ -129,9 +129,6 @@ var/global/list/obj/machinery/field_generator/field_gen_list = list()
else
..()
/obj/machinery/containment_field/meteorhit()
return 0
/obj/machinery/field_generator/bullet_act(var/obj/item/projectile/Proj)
if(Proj.flag != "bullet")
power += Proj.damage

View File

@@ -161,12 +161,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
del(src)
return
/obj/structure/particle_accelerator/meteorhit()
if(prob(50))
del(src)
return
/obj/structure/particle_accelerator/update_icon()
switch(construction_state)
if(0,1)
@@ -347,13 +341,6 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
del(src)
return
/obj/machinery/particle_accelerator/meteorhit()
if(prob(50))
del(src)
return
/obj/machinery/particle_accelerator/proc/update_state()
return 0

View File

@@ -227,10 +227,6 @@ Manual Tracking Direction:"}
stat |= BROKEN
update_icon()
/obj/machinery/power/solar/control/meteorhit()
broken()
return
/obj/machinery/power/solar/control/ex_act(severity)
switch(severity)
if(1.0)

View File

@@ -132,12 +132,6 @@
if(health > 1)
health = 1 //Only holding up on shards and scrap
/obj/machinery/power/solar/panel/meteorhit()
if(stat & !BROKEN)
broken()
else
kill()
/obj/machinery/power/solar/panel/ex_act(severity)
switch(severity)
if(1.0)

View File

@@ -82,6 +82,7 @@
playsound(M.loc, 'sound/effects/bamf.ogg', 50, 0)
return 1
//This shouldn't fucking exist, just spawn a meteor damnit
/obj/item/projectile/meteor
name = "meteor"
icon = 'icons/obj/meteor.dmi'
@@ -91,26 +92,20 @@
nodamage = 1
flag = "bullet"
Bump(atom/A as mob|obj|turf|area)
if(A == firer)
loc = A.loc
return
/obj/item/projectile/meteor/Bump(atom/A as mob|obj|turf|area)
if(A == firer)
loc = A.loc
return
sleep(-1) //Might not be important enough for a sleep(-1) but the sleep/spawn itself is necessary thanks to explosions and metoerhits
//Copied straight from small meteor code
spawn(0)
for(var/mob/M in range(8, src))
if(!M.stat && !istype(M, /mob/living/silicon/ai)) //bad idea to shake an ai's view
shake_camera(M, 2, 1) //Poof
if(src)//Do not add to this if() statement, otherwise the meteor won't delete them
if(A)
A.meteorhit(src)
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 40, 1)
for(var/mob/M in range(10, src))
if(!M.stat && !istype(M, /mob/living/silicon/ai))\
shake_camera(M, 3, 1)
del(src)
return 1
else
return 0
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 10, 1)
explosion(src.loc, -1, 1, 3, 4, 0) //Tiny meteor doesn't cause too much damage
qdel(src)
/obj/item/projectile/energy/floramut
name = "alpha somatoray"

View File

@@ -109,10 +109,6 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
if (prob(50))
del(src)
/obj/machinery/chem_dispenser/meteorhit()
del(src)
return
/**
* The ui_interact proc is used to open and update Nano UIs
* If ui_interact is not used then the UI will not update correctly
@@ -415,10 +411,6 @@ USE THIS CHEMISTRY DISPENSER FOR MAPS SO THEY START AT 100 ENERGY
if (prob(50))
qdel(src)
/obj/machinery/chem_master/meteorhit()
qdel(src)
return
/obj/machinery/chem_master/attackby(var/obj/item/weapon/B as obj, var/mob/user as mob)
if(..())

View File

@@ -34,10 +34,6 @@ Note: Must be placed within 3 tiles of the R&D Console
T = Clamp(T, 0, 1)
decon_mod = T
/obj/machinery/r_n_d/destructive_analyzer/meteorhit()
del(src)
return
/obj/machinery/r_n_d/destructive_analyzer/proc/ConvertReqString2List(var/list/source_list)
var/list/temp_list = params2list(source_list)
for(var/O in temp_list)

View File

@@ -67,10 +67,6 @@ var/global/list/rnd_machines = list()
if (prob(50))
del(src)
/obj/machinery/r_n_d/meteorhit()
del(src)
return
/obj/machinery/r_n_d/attack_hand(mob/user as mob)
if (shocked)
shock(user,50)

View File

@@ -76,11 +76,6 @@
produce_heat(heat_gen)
delay = initial(delay)
/obj/machinery/r_n_d/server/meteorhit(var/obj/O as obj)
griefProtection()
..()
/obj/machinery/r_n_d/server/emp_act(severity)
griefProtection()
..()