Changes

no edit summary
Line 355: Line 355:     
function Iterator.enemiesBy(context, n, pred, pre)
 
function Iterator.enemiesBy(context, n, pred, pre)
     local collection = U.imap(CollectionEnemy, function(name)
+
local base_ids = {}
        return EnemyShip(name)
+
     local collection = U.imap(CollectionEnemy, function(name, i)
 +
    local obj = EnemyShip(name)
 +
    if not base_ids[obj:base_name()] then
 +
      base_ids[obj:base_name()] = i
 +
    end
 +
        return obj
 
     end)
 
     end)
 
     table.sort(collection, function(a, b)
 
     table.sort(collection, function(a, b)
         local ai = U.ifind(CollectionEnemy, a:base_name())
+
         local ai = base_ids[a:base_name()]
         local bi = U.ifind(CollectionEnemy, b:base_name())
+
         local bi = base_ids[b:base_name()]
 
         if ai and bi and ai ~= bi then
 
         if ai and bi and ai ~= bi then
 
             return ai < bi
 
             return ai < bi
Line 450: Line 455:  
     end
 
     end
 
      
 
      
     testIterator('shipsByType', { type = '11', sort = '_class' , listBase = 'true'})
+
     --testIterator('shipsByType', { type = '11', sort = '_class' , listBase = 'true'})
     testIterator('shipsByType', { sort = '_name'})
+
     --testIterator('shipsByType', { sort = '_name'})
     testIterator('shipsByTrueId', { sort = '_id', from = '1', to = '20', listBase = 'true'})
+
     --testIterator('shipsByTrueId', { sort = '_id', from = '1', to = '20', listBase = 'true'})
     testIterator('shipsBy', { pred = 'is_auxiliary' , sort = '_name'})
+
     --testIterator('shipsBy', { pred = 'is_auxiliary' , sort = '_name'})
 
      
 
      
     testIterator('equipmentById', { from = '11', to = '20' })
+
     --testIterator('equipmentById', { from = '11', to = '20' })
     testIterator('equipmentByIdWithHeaders', { from = '1', to = '30' })
+
     --testIterator('equipmentByIdWithHeaders', { from = '1', to = '30' })
     testIterator('equipmentByType', { type = '2' })
+
     --testIterator('equipmentByType', { type = '2' })
     testIterator('equipmentByType', { type = '1', sort = '_icon' })
+
     --testIterator('equipmentByType', { type = '1', sort = '_icon' })
     testIterator('equipmentByTypeAndIcon', { type = '1', icon = '16' })
+
     --testIterator('equipmentByTypeAndIcon', { type = '1', icon = '16' })
     testIterator('equipmentBy', { pred = 'is_large_caliber_main_gun', sort = '_type' })
+
     --testIterator('equipmentBy', { pred = 'is_large_caliber_main_gun', sort = '_type' })
 
      
 
      
     testIterator('enemiesByType', { type = '2' })
+
     testIterator('enemiesByType', { type = '8' })
 
end
 
end
 
-- p.test()
 
-- p.test()
    
return Iterator
 
return Iterator
7,212

edits