When ninjas teleport into a living mob(s), that mob is gibbed. HIYA

Added emp pulse to ninjas powers (Ninja gear is not affected by EMP).
Ninja mask protects against flash (portable and set).
Ninja mask can toggle voice changer and vision modes (right click).
Ninjas can toggle stealth (right click suit).

Thermals and mesons no-longer give (slightly) better night vision.
Commented out tray sounds until we get the files uploaded so the game compiles.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1349 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
noisomehollow@lycos.com
2011-04-03 00:10:16 +00:00
parent 7db4226cd3
commit 50dd198fb5
11 changed files with 190 additions and 56 deletions
+3 -1
View File
@@ -13,9 +13,11 @@
if (istype(H.head, /obj/item/clothing/head/helmet/welding))
if(!H.head:up)
safety = 1
if (istype(H.wear_mask, /obj/item/clothing/mask/gas/space_ninja))
safety = 1
if (istype(M, /mob/living/carbon/alien))//So aliens don't get flashed (they have no external eyes)/N
safety = 1
if(isrobot(user))
if (isrobot(user))
spawn(0)
var/atom/movable/overlay/animation = new(user.loc)
animation.layer = user.layer + 1
+100 -2
View File
@@ -8,7 +8,8 @@ SWAT SUIT
CHAMELEON JUMPSUIT
DEATH COMMANDO GAS MASK
THERMAL GLASSES
NINJA SUIT
NINJA MASK
*/
@@ -290,4 +291,101 @@ THERMAL GLASSES
M.disabilities |= 1
spawn(100)
M.disabilities &= ~1
..()
..()
//SPESS NINJA STUFF
/obj/item/clothing/suit/space/space_ninja/verb/toggle()
set name = "Toggle Stealth"
set desc = "Toggles the internal CLOAK-tech on or off."
set category = "Object"
if(src.active)
spawn(0)
var/atom/movable/overlay/animation = new(usr.loc)
animation.icon = 'mob.dmi'
animation.icon_state = "blank"
animation.layer = usr.layer + 1
animation.master = usr
flick("uncloak", animation)
sleep(15)
del(animation)
src.active=0
usr << "\blue You are now visible."
for(var/mob/O in oviewers(usr, null))
O << "[usr.name] appears from thin air!"
else
spawn(0)
var/atom/movable/overlay/animation = new(usr.loc)
animation.icon = 'mob.dmi'
animation.icon_state = "blank"
animation.layer = usr.layer + 1
animation.master = usr
flick("cloak", animation)
sleep(15)
del(animation)
src.active=1
usr << "\blue You are now invisible to normal detection."
for(var/mob/O in oviewers(usr, null))
O << "[usr.name] vanishes into thin air!"
//So apparently, examine won't show up as a verb when
//viewing an object equipped on the hud
//and that object having other verbs?
//Doesn't really make any sense
/obj/item/clothing/suit/space/space_ninja/examine()
..()
if(src.active)
usr << "The CLOAK-tech device is active."
else
usr << "The CLOAK-tech device is offline."
/obj/item/clothing/mask/gas/space_ninja/verb/togglev()
set name = "Toggle Voice"
set desc = "Toggles the voice synthesizer on or off."
set category = "Object"
if(src.vchange==0)
src.vchange=1
usr << "You enable the voice voice synthesizer."
else
src.vchange=0
usr << "You disable the voice synthesizer."
/obj/item/clothing/mask/gas/space_ninja/verb/switchm()
set name = "Switch Mode"
set desc = "Switches between Night Vision, Meson, or Thermal vision modes."
set category = "Object"
//Have to reset these manually since life.dm is retarded like that. Go figure.
switch(src.mode)
if(1)
src.mode=2
usr.see_in_dark = 2
usr << "Switching mode to <B>Thermal Scanner</B>."
if(2)
src.mode=3
usr.see_invisible = 0
usr.sight &= ~SEE_MOBS
usr << "Switching mode to <B>Meson Scanner</B>."
if(3)
src.mode=1
usr.sight &= ~SEE_TURFS
usr << "Switching mode to <B>Night Vision</B>."
/obj/item/clothing/mask/gas/space_ninja/examine()
..()
var/mode = "Night Vision"
var/voice = "inactive"
switch(src.mode)
if(1)
mode = "Night Vision"
if(2)
mode = "Thermal Scanner"
if(3)
mode = "Meson Scanner"
if(src.vchange==0)
voice = "inactive"
else
voice = "active"
usr << "<B>[mode]</B> is active."
usr << "Voice mimicking algorithm is <B>[voice]</B>."
@@ -510,7 +510,6 @@ obj/item/weapon/gun/revolver/attackby(obj/item/weapon/ammo/a357/A as obj, mob/us
/obj/item/weapon/gun/detectiverevolver/attack(mob/M as mob, mob/user as mob)
src.add_fingerprint(user)
var/mob/living/carbon/human/H = M
var/detective = (istype(user:w_uniform, /obj/item/clothing/under/det) && istype(user:head, /obj/item/clothing/head/det_hat) && istype(user:wear_suit, /obj/item/clothing/suit/det_suit))
// ******* Check
+8 -8
View File
@@ -141,10 +141,10 @@ KNIFE
M.weakened += 1
M.bruteloss += 2
if(prob(50))
playsound(M, 'trayhit1.wav', 50, 1)
//playsound(M, 'trayhit1.wav', 50, 1)
return
else
playsound(M, 'trayhit2.wav', 50, 1) //sound playin'
//playsound(M, 'trayhit2.wav', 50, 1) //sound playin'
return //it always returns, but I feel like adding an extra return just for safety's sakes. EDIT; Oh well I won't :3
@@ -155,12 +155,12 @@ KNIFE
else
M.bruteloss +=5
if(prob(50))
playsound(M, 'trayhit1.wav', 50, 1)
//playsound(M, 'trayhit1.wav', 50, 1)
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] slams [] with the tray!", user, M), 1)
return
else
playsound(M, 'trayhit2.wav', 50, 1) //we applied the damage, we played the sound, we showed the appropriate messages. Time to return and stop the proc
//playsound(M, 'trayhit2.wav', 50, 1) //we applied the damage, we played the sound, we showed the appropriate messages. Time to return and stop the proc
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] slams [] with the tray!", user, M), 1)
return
@@ -171,11 +171,11 @@ KNIFE
if(istype(M, /mob/living/carbon/human) && ((H.head && H.head.flags & HEADCOVERSEYES) || (H.wear_mask && H.wear_mask.flags & MASKCOVERSEYES) || (H.glasses && H.glasses.flags & GLASSESCOVERSEYES)))
M << "\red You get slammed in the face with the tray, against your mask!"
if(prob(50))
playsound(M, 'trayhit1.wav', 50, 1)
//playsound(M, 'trayhit1.wav', 50, 1)
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] slams [] with the tray!", user, M), 1)
else
playsound(M, 'trayhit2.wav', 50, 1) //sound playin'
//playsound(M, 'trayhit2.wav', 50, 1) //sound playin'
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] slams [] with the tray!", user, M), 1)
if(prob(10))
@@ -189,11 +189,11 @@ KNIFE
else //No eye or head protection, tough luck!
M << "\red You get slammed in the face with the tray!"
if(prob(50))
playsound(M, 'trayhit1.wav', 50, 1)
// playsound(M, 'trayhit1.wav', 50, 1)
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] slams [] in the face with the tray!", user, M), 1)
else
playsound(M, 'trayhit2.wav', 50, 1) //sound playin' again
//playsound(M, 'trayhit2.wav', 50, 1) //sound playin' again
for(var/mob/O in viewers(M, null))
O.show_message(text("\red [] slams [] in the face with the tray!", user, M), 1)
if(prob(30))