void IFighterTask::AssignTo(CCircuitUnit* unit) { IUnitTask::AssignTo(unit); CCircuitDef* cdef = unit->GetCircuitDef(); attackPower += cdef->GetPower(); if (unit->GetShield() != nullptr) { shields.insert(unit); } if (unit->HasDGun()) { const float range = std::max(cdef->GetDGunRange() * 1.1f, cdef->GetLosRadius()); CDGunAction* act = new CDGunAction(unit, range); unit->PushBack(act); } }