Merge pull request #6927 from VOREStation/pol-turrets

Adjust turret target finding process
This commit is contained in:
Atermonera
2020-04-03 00:14:32 -07:00
committed by GitHub
2 changed files with 14 additions and 36 deletions
-35
View File
@@ -1,38 +1,3 @@
/atom/movable/proc/get_mob()
return
/obj/mecha/get_mob()
return occupant
/obj/vehicle/train/get_mob()
return buckled_mobs
/mob/get_mob()
return src
/mob/living/bot/mulebot/get_mob()
if(load && istype(load, /mob/living))
return list(src, load)
return src
/proc/mobs_in_view(var/range, var/source)
var/list/mobs = list()
for(var/atom/movable/AM in view(range, source))
var/M = AM.get_mob()
if(M)
mobs += M
return mobs
/proc/mobs_in_xray_view(var/range, var/source)
var/list/mobs = list()
for(var/atom/movable/AM in orange(range, source))
var/M = AM.get_mob()
if(M)
mobs += M
return mobs
proc/random_hair_style(gender, species = SPECIES_HUMAN)
var/h_style = "Bald"
+14 -1
View File
@@ -701,8 +701,21 @@
var/list/targets = list() //list of primary targets
var/list/secondarytargets = list() //targets that are least important
var/list/seenturfs = list()
for(var/turf/T in oview(world.view, src))
seenturfs += T
for(var/mob in living_mob_list)
var/mob/M = mob
if(M.z != z) //Skip
continue
if(get_turf(M) in seenturfs)
assess_and_assign(mob, targets, secondarytargets)
/* This was dumb. Why do this and then check line of sight later?
for(var/mob/M in mobs_in_xray_view(world.view, src))
assess_and_assign(M, targets, secondarytargets)
*/
if(!tryToShootAt(targets))
if(!tryToShootAt(secondarytargets)) // if no valid targets, go for secondary targets
@@ -1138,4 +1151,4 @@
#undef TURRET_PRIORITY_TARGET
#undef TURRET_SECONDARY_TARGET
#undef TURRET_NOT_TARGET
#undef TURRET_NOT_TARGET