Merge pull request #11098 from PsiOmegaDelta/150913-TargetAcquired

Attempts to improve mob in view acquirement.
This commit is contained in:
GinjaNinja32
2015-09-14 06:28:36 +01:00
2 changed files with 28 additions and 9 deletions
+25
View File
@@ -1,3 +1,28 @@
/atom/movable/proc/get_mob()
return
/obj/machinery/bot/mulebot/get_mob()
if(load && istype(load,/mob/living))
return load
/obj/mecha/get_mob()
return occupant
/obj/vehicle/train/get_mob()
return buckled_mob
/mob/get_mob()
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/random_hair_style(gender, species = "Human")
var/h_style = "Bald"
+3 -9
View File
@@ -376,7 +376,7 @@ var/list/turret_icons
/obj/machinery/porta_turret/bullet_act(obj/item/projectile/Proj)
var/damage = Proj.get_structure_damage()
if(!damage)
return
@@ -444,14 +444,8 @@ var/list/turret_icons
var/list/targets = list() //list of primary targets
var/list/secondarytargets = list() //targets that are least important
for(var/obj/mecha/ME in view(7,src))
assess_and_assign(ME.occupant, targets, secondarytargets)
for(var/obj/vehicle/train/T in view(7,src))
assess_and_assign(T.load, targets, secondarytargets)
for(var/mob/living/C in view(7,src)) //loops through all living lifeforms in view
assess_and_assign(C, targets, secondarytargets)
for(var/mob/M in mobs_in_view(world.view, src))
assess_and_assign(M, targets, secondarytargets)
if(!tryToShootAt(targets))
if(!tryToShootAt(secondarytargets)) // if no valid targets, go for secondary targets