mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2025-12-25 17:51:17 +00:00
Rev converting is now limited to carbon-based life. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@84 316c924e-a436-60f5-8080-3fe189b3f50e
100 lines
3.2 KiB
Plaintext
100 lines
3.2 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) || istype(H.head, /obj/item/clothing/head/helmet/welding))
|
|
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)
|
|
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))
|
|
src.attack_self(user, 1)
|
|
return
|
|
|
|
/obj/item/device/flash/attack_self(mob/living/carbon/user as mob, flag)
|
|
if ((usr.mutations & 16) && prob(50))
|
|
usr << "\red The Flash slips out of your hand."
|
|
usr.drop_item()
|
|
return
|
|
if ( (world.time + 600) > src.l_time)
|
|
src.shots = 5
|
|
if (src.shots < 1)
|
|
user.show_message("\red *click* *click*", 2)
|
|
return
|
|
if (!(istype(usr, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
|
|
usr << "\red You don't have the dexterity to do this!"
|
|
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) || istype(H.head, /obj/item/clothing/head/helmet/welding))
|
|
safety = 1
|
|
if (!( safety ))
|
|
flick("flash", M.flash)
|