|
418 | 418 | ..()
|
419 | 419 | H.reagents.add_reagent(TOXIN,1)
|
420 | 420 |
|
421 |
| -/obj/item/weapon/invisible_spray |
422 |
| - name = "can of invisible spray" |
423 |
| - desc = "A can of... invisibility? The label reads: \"Wears off after five minutes.\"" |
| 421 | +/obj/item/weapon/syndie_spray |
| 422 | + name = "syndicate spray" |
| 423 | + desc = "A can of... nothing?" |
424 | 424 | icon = 'icons/obj/items.dmi'
|
425 | 425 | icon_state = "invisible_spray"
|
426 | 426 | flags = FPRINT
|
427 | 427 | w_class = W_CLASS_SMALL
|
428 | 428 | var/permanent = 0
|
429 |
| - var/invisible_time = 5 MINUTES |
| 429 | + var/effect_time = 5 MINUTES |
430 | 430 | var/sprays_left = 1
|
| 431 | + var/effect_adjective = "" |
431 | 432 | var/static/list/prohibited_objects = list( //For fun removal
|
432 | 433 | )
|
433 | 434 |
|
434 |
| -/obj/item/weapon/invisible_spray/examine(var/mob/user) |
| 435 | +/obj/item/weapon/syndie_spray/examine(var/mob/user) |
435 | 436 | ..()
|
436 | 437 | if(loc != user)
|
437 | 438 | return
|
|
440 | 441 | else
|
441 | 442 | to_chat(user, "<span class='notice'>The can feels empty.</span>")
|
442 | 443 |
|
443 |
| - |
444 |
| -/obj/item/weapon/invisible_spray/preattack(atom/movable/target, mob/user, proximity_flag, click_parameters) |
| 444 | +/obj/item/weapon/syndie_spray/preattack(atom/movable/target, mob/user, proximity_flag, click_parameters) |
445 | 445 | if (!proximity_flag)
|
446 | 446 | return 0
|
447 | 447 | if(!istype(target))
|
448 | 448 | return
|
449 | 449 | if(!sprays_left)
|
450 | 450 | to_chat(user, "\The [src] is empty.")
|
451 | 451 | return
|
452 |
| - if(target.invisibility || target.alpha <= 1) |
453 |
| - to_chat(user, "\The [target] is already invisible!") |
| 452 | + if(effect_active(target)) |
| 453 | + to_chat(user, "\The [target] is already [effect_adjective]!") |
454 | 454 | return
|
455 | 455 | if(is_type_in_list(target,prohibited_objects))
|
456 | 456 | to_chat(user, "<span class='notice'>For some reason, you don't think that would work.</span>")
|
|
461 | 461 | to_chat(user, "\The [src] is empty.")
|
462 | 462 | return
|
463 | 463 | if(permanent)
|
464 |
| - invisible_time = 0 |
| 464 | + effect_time = 0 |
465 | 465 | var/mob/M = target
|
466 | 466 | if(M == user)
|
467 | 467 | to_chat(user, "You spray yourself with \the [src].")
|
468 |
| - user.make_invisible(INVISIBLESPRAY, invisible_time, FALSE, 1) |
| 468 | + apply_spray_effect(user, effect_time) |
469 | 469 | else if (ismob(M))
|
470 | 470 | to_chat(user, "You spray [M] with \the [src].")
|
471 |
| - M.make_invisible(INVISIBLESPRAY, invisible_time, FALSE, 1) |
| 471 | + apply_spray_effect(M, effect_time) |
472 | 472 | var/obj/O = target
|
473 | 473 | if(isobj(O))
|
474 | 474 | if(locate(O) in get_contents_in_object(user))
|
475 |
| - O.make_invisible(INVISIBLESPRAY, invisible_time, 1) |
| 475 | + apply_spray_effect(O, effect_time) |
476 | 476 | else
|
477 |
| - O.make_invisible(INVISIBLESPRAY, invisible_time, 1) |
| 477 | + apply_spray_effect(O, effect_time) |
478 | 478 | to_chat(user, "You spray \the [O] with \the [src].")
|
479 |
| - |
480 | 479 | playsound(src, 'sound/effects/spray2.ogg', 50, 1, -6)
|
481 | 480 | sprays_left--
|
| 481 | + return 1 |
| 482 | + |
| 483 | +/obj/item/weapon/syndie_spray/proc/effect_active(atom/movable/target) |
| 484 | + return 0 |
| 485 | + |
| 486 | +/obj/item/weapon/syndie_spray/proc/apply_spray_effect(atom/movable/target,var/duration) |
| 487 | + return 1 |
| 488 | + |
| 489 | +/obj/item/weapon/syndie_spray/invisible_spray |
| 490 | + name = "can of invisible spray" |
| 491 | + desc = "A can of... invisibility? The label reads: \"Wears off after five minutes.\"" |
| 492 | + icon_state = "invisible_spray" |
| 493 | + effect_adjective = "invisible" |
| 494 | + |
| 495 | +/obj/item/weapon/syndie_spray/invisible_spray/effect_active(atom/movable/target) |
| 496 | + if(target.invisibility || target.alpha <= 1) |
| 497 | + return 1 |
| 498 | + |
| 499 | +/obj/item/weapon/syndie_spray/invisible_spray/apply_spray_effect(atom/movable/target, duration) |
| 500 | + if(ismob(target)) |
| 501 | + var/mob/M = target |
| 502 | + M.make_invisible(INVISIBLESPRAY, duration, FALSE, 1) |
| 503 | + return 1 |
| 504 | + else if(isobj(target)) |
| 505 | + var/obj/O = target |
| 506 | + O.make_invisible(INVISIBLESPRAY, duration, FALSE, 1) |
| 507 | + return 1 |
| 508 | + |
| 509 | +/obj/item/weapon/syndie_spray/invisible_spray/preattack(atom/movable/target, mob/user, proximity_flag, click_parameters) |
| 510 | + if(!..()) |
| 511 | + return |
482 | 512 | if(istype(target, /obj/machinery/power/supermatter))
|
483 | 513 | return 0
|
484 | 514 | if(istype(target, /obj/machinery/singularity))
|
485 | 515 | animate(target, color = grayscale, time = 6 SECONDS)
|
486 | 516 | return 0
|
487 |
| - return 1 |
488 | 517 |
|
489 |
| -/obj/item/weapon/invisible_spray/permanent |
| 518 | +/obj/item/weapon/syndie_spray/invisible_spray/permanent |
490 | 519 | desc = "A can of... invisibility?"
|
491 | 520 | permanent = 1
|
492 | 521 |
|
| 522 | +/obj/item/weapon/syndie_spray/silent_spray |
| 523 | + name = "can of silencing spray" |
| 524 | + desc = "A can of... silence? The label reads: \"Wears off after five minutes.\"" |
| 525 | + icon_state = "silent_spray" |
| 526 | + effect_adjective = "silent" |
| 527 | + |
| 528 | +/obj/item/weapon/syndie_spray/silent_spray/effect_active(atom/movable/target) |
| 529 | + if(target.silence_sprayed) |
| 530 | + return 1 |
| 531 | + |
| 532 | +/obj/item/weapon/syndie_spray/silent_spray/apply_spray_effect(atom/movable/target, duration) |
| 533 | + target.make_silent(duration) |
| 534 | + return 1 |
| 535 | + |
| 536 | +/obj/item/weapon/syndie_spray/silent_spray/preattack(atom/movable/target, mob/user, proximity_flag, click_parameters) |
| 537 | + if(!..()) |
| 538 | + return |
| 539 | + if(istype(target, /obj/machinery/power/supermatter)) |
| 540 | + return 0 |
| 541 | + if(istype(target, /obj/machinery/singularity)) |
| 542 | + animate(target, color = grayscale, time = 6 SECONDS) |
| 543 | + return 0 |
| 544 | + |
| 545 | +/obj/item/weapon/syndie_spray/silent_spray/permanent |
| 546 | + desc = "A can of... silence?" |
| 547 | + permanent = 1 |
| 548 | + |
493 | 549 | /obj/item/weapon/razor
|
494 | 550 | name = "electric razor"
|
495 | 551 | desc = "The latest and greatest power razor born from the science of shaving."
|
|
0 commit comments