mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-01-22 23:43:21 +00:00
The code part of the update. i74 - I don't want to deal with AI stuff. i72 - Not a bug, but remains here because it concerns the SVN. i70 - No idea how to fix. i68 - Nobody knows how to fix process(). Will look into later. i67 - I don't want to deal with AI stuff. i66 - Fixed. i59 - What can I say? It's atmos. i51 - Is explained on the forum i50 - Couldn't replicate. i49 - FIXED. i48 - I'll look into it later. i46 - I don't think that's a good idea. i45 - I don't think that's a good idea. i44 - No idea how to fix. i42 - Already been fixed. i38 - Outdated (not present on this map) i36 - No idea how to fix. i32 - I don't think that's a good idea. i31 - Isn't fixed, bug the spriters for that. i30 - Fixed. i29 - I don't think that's a good idea. i27 - Added (not really easy to playtest properly, though, so it's probably buggy) i25 - Outdated (works on this map) i23 - Fixed (you can now only aoe 5 times per minute) i18 - Not a bug. Moved to my "possibly but not really" projects folder. i17 - Already been fixed. i16 - Already been fixed. i13 - Not a bug. Moved to my "possibly but not really" projects folder. i12 - Already been fixed through different means. i10 - Fixed (thanks to the suggestion in the comments) i 6 - No idea how it works, can't check. According to Agouri, still present. i 5 - Not important right now. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1491 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/voice))
|
|
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 > (src.l_time + 600))
|
|
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)
|
|
..()
|