anchor.diff:      FinPos := fTargetHouse.GetPosition;
       if PlanPath(ActPos, FinPos, True) then
         Group.OrderWalk(FinPos, True, FinalPosition.Dir)
  -    else if fTargetChanged then
  -    begin
  +    else if fTargetChanged OR (fAttackTimeLimit < aTick) then
  +    begin
  +      fAttackTimeLimit := aTick + HOUSE_AIM_DELAY;
         fTargetChanged := False;
         Group.OrderAttackHouse(fTargetHouse, True);
       end;
  
positive.code:   TKMCompanyMode = (cm_Attack, cm_Defence);
    TKMCompanyState = (cs_Attack, cs_Walking, cs_Idle);
  
    TAISquad = class // Squad management (one group)
    private
      fGroup: TKMUnitGroup;
      fOnPlace, fTargetChanged: Boolean;
  
negative.code:   if not OrderToAttack(ScanPosition, UA, UGA, HA) then
    begin
      fState := cs_Walking;
      if InPosition then
      begin
        if not OrderMove(PathPosition) then
          fState := cs_Idle;
  