> Are these iterations necessary for each Actors::update()

Only once per 1.0 sec according to ```timerUpdateAITargets```. I also thought about ditributing this cost over 1.0 sec (or other time). But didn't implement it :(

> which means a lot of unnecessary processing

Not unnecessary if we want to make creatures fight with guards. But there is really a lot of processing. What is really costly here it's calls to getLOS. It's better for performance for guards to spot (through getLOS) a creature to attack from the first attempt, so they won't repeat that check every 1 sec.

>Also, shouldn't the second party engage in combat only after some kind of rule?

The rules at the moment are (order is important, see ```EngageCombat```):
1. max attack distance = 5000;
2. if guard doesn't have any creatures to attack (if he has 1, he won't cast LOS to others), while player is special target. This is approximately how things go in MW and it's pure optimisation thing;
3. target is in LOS.

Also MW has "AI distance" parameter in game settings. I think we should implement it too and that 5000 won't be fixed anymore.