mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-03 06:01:46 +00:00
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
123 lines
4.0 KiB
Plaintext
123 lines
4.0 KiB
Plaintext
|
|
/obj/item/device/flash/attack(mob/living/carbon/M as mob, mob/user as mob)
|
|
if ((usr.mutations & 16) && prob(50))
|
|
usr << "\red The Flash slips out of your hand."
|
|
usr.drop_item()
|
|
return
|
|
if (src.shots > 0)
|
|
var/safety = null
|
|
if (istype(M, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/H = M
|
|
if (istype(H.glasses, /obj/item/clothing/glasses/sunglasses))
|
|
safety = 1
|
|
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))
|
|
spawn(0)
|
|
var/atom/movable/overlay/animation = new(user.loc)
|
|
animation.layer = user.layer + 1
|
|
animation.icon_state = "blank"
|
|
animation.icon = 'mob.dmi'
|
|
animation.master = user
|
|
flick("blspell", animation)
|
|
sleep(5)
|
|
del(animation)
|
|
if (!( safety ))
|
|
if (M.client)//Probably here to prevent forced conversion of dced players. /N
|
|
if (status == 0)
|
|
user << "\red The bulb has been burnt out!"
|
|
return
|
|
if (!( safety ) && status == 1)
|
|
playsound(src.loc, 'flash.ogg', 100, 1)
|
|
if(!(M.mutations & 8)) M.weakened = 10
|
|
if (prob(10))
|
|
status = 0
|
|
user << "\red The bulb has burnt out!"
|
|
return
|
|
if ((M.eye_stat > 15 && prob(M.eye_stat + 50)))
|
|
flick("e_flash", M.flash)
|
|
M.eye_stat += rand(1, 2)
|
|
else
|
|
flick("flash", M.flash)
|
|
M.eye_stat += rand(0, 2)
|
|
if (M.eye_stat >= 20)
|
|
M << "\red You eyes start to burn badly!"
|
|
M.disabilities |= 1
|
|
if (prob(M.eye_stat - 20 + 1))
|
|
M << "\red You go blind!"
|
|
M.sdisabilities |= 1
|
|
if(ticker.mode.name == "revolution" && istype(M, /mob/living/carbon))
|
|
if(user.mind in ticker.mode:head_revolutionaries)
|
|
ticker.mode:add_revolutionary(M.mind)
|
|
|
|
for(var/mob/O in viewers(user, null))
|
|
if(status == 1)
|
|
O.show_message(text("\red [] blinds [] with the flash!", user, M))
|
|
else
|
|
for(var/mob/O in viewers(user, null))
|
|
if(status == 1)
|
|
O.show_message(text("\blue [] fails to blind [] with the flash!", user, M))
|
|
src.attack_self(user, 1)
|
|
return
|
|
|
|
/obj/item/device/flash/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
|
|
if (emp)
|
|
|
|
else if ((usr.mutations & 16) && prob(50))
|
|
usr << "\red The Flash slips out of your hand."
|
|
usr.drop_item()
|
|
return
|
|
else if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
|
|
usr << "\red You don't have the dexterity to do this!"
|
|
return
|
|
if ( (world.time + 600) > src.l_time)
|
|
src.shots = 5
|
|
if (src.shots < 1)
|
|
user.show_message("\red *click* *click*", 2)
|
|
return
|
|
|
|
src.l_time = world.time
|
|
add_fingerprint(user)
|
|
src.shots--
|
|
playsound(src.loc, 'flash.ogg', 100, 1)
|
|
flick("flash2", src)
|
|
if(isrobot(user))
|
|
spawn(0)
|
|
var/atom/movable/overlay/animation = new(user.loc)
|
|
animation.layer = user.layer + 1
|
|
animation.icon_state = "blank"
|
|
animation.icon = 'mob.dmi'
|
|
animation.master = user
|
|
flick("blspell", animation)
|
|
sleep(5)
|
|
del(animation)
|
|
if (!( flag ))
|
|
for(var/mob/living/carbon/M in oviewers(3, null))
|
|
if (prob(50))
|
|
if (locate(/obj/item/weapon/cloaking_device, M))
|
|
for(var/obj/item/weapon/cloaking_device/S in M)
|
|
S.active = 0
|
|
S.icon_state = "shield0"
|
|
if (M.client)
|
|
var/safety = null
|
|
if (istype(M, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/H = M
|
|
if (istype(H.glasses, /obj/item/clothing/glasses/sunglasses))
|
|
safety = 1
|
|
if (istype(H.head, /obj/item/clothing/head/helmet/welding))
|
|
if(!H.head:up)
|
|
safety = 1
|
|
if (istype(M, /mob/living/carbon/alien))//So aliens don't see those annoying flash screens.
|
|
safety = 1
|
|
if (!( safety ))
|
|
flick("flash", M.flash)
|
|
|
|
/obj/item/device/flash/emp_act(severity)
|
|
src.attack_self(null,1,1)
|
|
..()
|