#pragma once class EntityAdmin; struct WorldTargeting; // Acquires/validates a combat target for ships with weapons. Scores high only // when the ship's health is not low and a valid target is within sensor range. // // Target choice is claim-aware: each tick the desirability of every candidate is // scored from a configurable distance formula and reduced by a soft overclaim // penalty that scales with how many other ships already target it, spreading // ships across enemies instead of dogpiling the nearest one. class AttackEvaluator { public: explicit AttackEvaluator(const WorldTargeting& targeting); void evaluate(EntityAdmin& admin); private: const WorldTargeting* m_targeting; };