mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 20:16:55 +01:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user