mirror of
https://github.com/Citadel-Station-13/Citadel-Station-13-RP.git
synced 2025-12-10 11:51:40 +00:00
40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
// Helper proc to check if you can hit them or not.
|
|
// Will return a list of hit mobs/objects.
|
|
/proc/check_trajectory(atom/target as mob|obj, atom/firer as mob|obj, var/pass_flags=PASSTABLE|PASSGLASS|PASSGRILLE, flags=null)
|
|
if(!istype(target) || !istype(firer))
|
|
return 0
|
|
|
|
var/obj/item/projectile/test/trace = new /obj/item/projectile/test(get_turf(firer)) //Making the test....
|
|
|
|
//Set the flags and pass flags to that of the real projectile...
|
|
if(!isnull(flags))
|
|
trace.flags = flags
|
|
trace.pass_flags = pass_flags
|
|
|
|
return trace.launch_projectile(target) //Test it!
|
|
|
|
/obj/item/projectile/proc/_check_fire(atom/target as mob, var/mob/living/user as mob) //Checks if you can hit them or not.
|
|
check_trajectory(target, user, pass_flags, flags)
|
|
|
|
//"Tracing" projectile
|
|
/obj/item/projectile/test //Used to see if you can hit them.
|
|
invisibility = 101 //Nope! Can't see me!
|
|
hitscan = TRUE
|
|
nodamage = TRUE
|
|
damage = 0
|
|
var/list/hit = list()
|
|
|
|
/obj/item/projectile/test/process_hitscan()
|
|
. = ..()
|
|
if(!QDELING(src))
|
|
qdel(src)
|
|
return hit
|
|
|
|
/obj/item/projectile/test/Bump(atom/A)
|
|
if(A != src)
|
|
hit |= A
|
|
return ..()
|
|
|
|
/obj/item/projectile/test/attack_mob()
|
|
return
|