Y2K update:

- New "empulse" proc. Works similarly to "explode" proc. It triggers the "emp_act" proc on everything within range. emp_act are effects similar or identical to the effects of the emp grenade. Any major changes to emp effects listed below. Note: EMPs now affect items in your backpack.
- New admin right-click command: EM Pulse. You can create an empulse at the desired location with a size you choose. Similar to Explosion command.
- disable device spell, emp grenade, and disable tech rune all use empulse now.
- New "disable device" spell datum added.
- EMP'ed gas canisters no longer drain the station of power.
- When a borg is EMP'ed, all objects in their module get their emp_act proc triggered.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1018 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
morikou@gmail.com
2011-02-11 03:01:12 +00:00
parent 706ad091cd
commit a697428db7
35 changed files with 321 additions and 371 deletions
+8
View File
@@ -130,6 +130,7 @@
src.verbs += /client/proc/cmd_admin_gib
src.verbs += /client/proc/cmd_admin_gib_self
src.verbs += /client/proc/cmd_admin_explosion
src.verbs += /client/proc/cmd_admin_emp
src.verbs += /client/proc/cmd_admin_delete
src.verbs += /client/proc/cmd_admin_drop_everything
src.verbs += /client/proc/cmd_admin_prison
@@ -257,6 +258,7 @@
src.verbs += /client/proc/cmd_admin_gib
src.verbs += /client/proc/cmd_admin_gib_self
src.verbs += /client/proc/cmd_admin_explosion
src.verbs += /client/proc/cmd_admin_emp
src.verbs += /client/proc/cmd_admin_delete
src.verbs += /client/proc/cmd_admin_drop_everything
src.verbs += /client/proc/cmd_admin_prison
@@ -382,6 +384,7 @@
src.verbs += /client/proc/cmd_admin_gib
src.verbs += /client/proc/cmd_admin_gib_self
//src.verbs += /client/proc/cmd_admin_explosion
//src.verbs += /client/proc/cmd_admin_emp
src.verbs += /client/proc/cmd_admin_delete
src.verbs += /client/proc/cmd_admin_drop_everything
src.verbs += /client/proc/cmd_admin_prison
@@ -535,6 +538,7 @@
//src.verbs += /client/proc/cmd_admin_gib
src.verbs += /client/proc/cmd_admin_gib_self
//src.verbs += /client/proc/cmd_admin_explosion
//src.verbs += /client/proc/cmd_admin_emp
//src.verbs += /client/proc/cmd_admin_delete
//src.verbs += /client/proc/cmd_admin_drop_everything
src.verbs += /client/proc/cmd_admin_prison
@@ -678,6 +682,7 @@
//src.verbs += /client/proc/cmd_admin_gib
src.verbs += /client/proc/cmd_admin_gib_self
//src.verbs += /client/proc/cmd_admin_explosion
//src.verbs += /client/proc/cmd_admin_emp
//src.verbs += /client/proc/cmd_admin_delete
//src.verbs += /client/proc/cmd_admin_drop_everything
src.verbs += /client/proc/cmd_admin_prison
@@ -816,6 +821,7 @@
//src.verbs += /client/proc/cmd_admin_gib
src.verbs += /client/proc/cmd_admin_gib_self
//src.verbs += /client/proc/cmd_admin_explosion
//src.verbs += /client/proc/cmd_admin_emp
//src.verbs += /client/proc/cmd_admin_delete
//src.verbs += /client/proc/cmd_admin_drop_everything
src.verbs += /client/proc/cmd_admin_prison
@@ -938,6 +944,7 @@
//src.verbs += /client/proc/cmd_admin_gib
src.verbs += /client/proc/cmd_admin_gib_self
//src.verbs += /client/proc/cmd_admin_explosion
//src.verbs += /client/proc/cmd_admin_emp
//src.verbs += /client/proc/cmd_admin_delete
//src.verbs += /client/proc/cmd_admin_drop_everything
src.verbs += /client/proc/cmd_admin_prison
@@ -1093,6 +1100,7 @@
src.verbs -= /client/proc/cmd_admin_gib
src.verbs -= /client/proc/cmd_admin_gib_self
src.verbs -= /client/proc/cmd_admin_explosion
src.verbs -= /client/proc/cmd_admin_emp
src.verbs -= /client/proc/cmd_admin_delete
src.verbs -= /client/proc/cmd_admin_drop_everything
src.verbs -= /client/proc/cmd_admin_prison
+21
View File
@@ -525,6 +525,27 @@ TO DO: actually integrate random appearance and player preference save.
else
return
/client/proc/cmd_admin_emp(atom/O as obj|mob|turf in world)
set category = "Special Verbs"
set name = "EM Pulse"
if (!src.authenticated || !src.holder)
src << "Only administrators may use this command."
return
var/heavy = input("Range of heavy pulse.", text("Input")) as num
var/light = input("Range of light pulse.", text("Input")) as num
if (heavy || light)
empulse(O, heavy, light)
log_admin("[key_name(usr)] created an EM Pulse ([heavy],[light]) at ([O.x],[O.y],[O.z])")
message_admins("[key_name_admin(usr)] created an EM PUlse ([heavy],[light]) at ([O.x],[O.y],[O.z])", 1)
return
else
return
/client/proc/cmd_admin_gib(mob/M as mob in world)
set category = "Special Verbs"
set name = "Gib"
@@ -158,6 +158,13 @@
src.drowsyness += 5
return
/mob/living/carbon/alien/humanoid/emp_act(severity)
if(wear_suit) wear_suit.emp_act(severity)
if(head) head.emp_act(severity)
if(r_store) r_store.emp_act(severity)
if(l_store) l_store.emp_act(severity)
..()
/mob/living/carbon/alien/humanoid/ex_act(severity)
flick("flash", src.flash)
@@ -122,6 +122,10 @@
src.drowsyness += 5
return
/mob/living/carbon/alien/larva/emp_act(severity)
..()
/mob/living/carbon/alien/larva/ex_act(severity)
flick("flash", src.flash)
@@ -419,6 +419,22 @@
return
return
/mob/living/carbon/human/emp_act(severity)
if(wear_suit) wear_suit.emp_act(severity)
if(w_uniform) w_uniform.emp_act(severity)
if(shoes) shoes.emp_act(severity)
if(belt) belt.emp_act(severity)
if(gloves) gloves.emp_act(severity)
if(glasses) glasses.emp_act(severity)
if(head) head.emp_act(severity)
if(ears) ears.emp_act(severity)
if(wear_id) wear_id.emp_act(severity)
if(r_store) r_store.emp_act(severity)
if(l_store) l_store.emp_act(severity)
if(s_store) s_store.emp_act(severity)
if(h_store) h_store.emp_act(severity)
..()
/mob/living/carbon/human/ex_act(severity)
flick("flash", src.flash)
@@ -493,6 +493,10 @@
/mob/living/carbon/monkey/var/co2overloadtime = null
/mob/living/carbon/monkey/var/temperature_resistance = T0C+75
/mob/living/carbon/monkey/emp_act(severity)
if(wear_id) wear_id.emp_act(severity)
..()
/mob/living/carbon/monkey/ex_act(severity)
flick("flash", src.flash)
switch(severity)
+11
View File
@@ -136,6 +136,17 @@
/mob/living/silicon/ai/restrained()
return 0
/mob/living/silicon/ai/emp_act(severity)
if (prob(30))
switch(pick(1,2,3)) //Add Random laws.
if(1)
src.cancel_camera()
if(2)
src.lockdown()
if(3)
src.ai_call_shuttle()
..()
/mob/living/silicon/ai/ex_act(severity)
flick("flash", src.flash)
@@ -8,6 +8,14 @@
var/list/modules = list()
var/obj/item/emag
emp_act(severity)
if(modules)
for(var/obj/O in modules)
O.emp_act(severity)
if(emag)
emag.emp_act(severity)
..()
/obj/item/weapon/robot_module/standard
name = "standard robot module"
/*
@@ -7,5 +7,12 @@
/mob/living/silicon/proc/show_laws()
return
/mob/living/silicon/emp_act(severity)
src.fireloss += 25
flick("noise", src:flash)
src << "\red <B>*BZZZT*</B>"
src << "\red Warning: Electromagnetic pulse detected."
..()
/mob/living/silicon/proc/damage_mob(var/brute = 0, var/fire = 0, var/tox = 0)
return
+7 -1
View File
@@ -2204,4 +2204,10 @@ note dizziness decrements automatically in the mob's Life() proc.
boom.icon_state = "loss_general"
/mob/proc/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0)
return 0 //only carbon liveforms has this proc
return 0 //only carbon liveforms has this proc
/mob/emp_act(severity)
var/list/L = src.get_contents()
for(var/obj/O in L)
O.emp_act(severity)
..()
+11
View File
@@ -1023,6 +1023,17 @@
set_broken()
return
/obj/machinery/power/apc/emp_act(severity)
if(cell)
cell.emp_act(severity)
lighting = 0
equipment = 0
environ = 0
spawn(600)
equipment = 3
environ = 3
..()
/obj/machinery/power/apc/ex_act(severity)
switch(severity)
+8
View File
@@ -121,6 +121,14 @@
if (prob(10))
rigged = 1 //broken batterys are dangerous
/obj/item/weapon/cell/emp_act(severity)
charge -= 1000 / severity
if (charge < 0)
charge = 0
if(reliability != 100 && prob(50/severity))
reliability -= 10 / severity
..()
/obj/item/weapon/cell/ex_act(severity)
switch(severity)
+1 -10
View File
@@ -376,16 +376,7 @@ var/global/list/uneatable = list(
emp_area()
var/turf/myturf = get_turf(src)
var/obj/overlay/pulse = new/obj/overlay ( myturf )
pulse.icon = 'effects.dmi'
pulse.icon_state = "emppulse"
pulse.name = "emp pulse"
pulse.anchored = 1
spawn(20)
del(pulse)
for (var/atom/X in orange(8,src))
X.emp_act()
empulse(src, 6, 8)
return
+13
View File
@@ -316,6 +316,19 @@
return
/obj/machinery/power/smes/emp_act(severity)
online = 0
charging = 0
output = 0
charge -= 1e6/severity
if (charge < 0)
charge = 0
spawn(100)
output = initial(output)
charging = initial(charging)
online = initial(online)
..()
/proc/rate_control(var/S, var/V, var/C, var/Min=1, var/Max=5, var/Limit=null)
var/href = "<A href='?src=\ref[S];rate control=1;[V]"
var/rate = "[href]=-[Max]'>-</A>[href]=-[Min]'>-</A> [(C?C : 0)] [href]=[Min]'>+</A>[href]=[Max]'>+</A>"