Jaquio didn't say if he/she was using DBC or DBPro, but if it's DBC, it doesn't support types.
If it is DBC, then you would still use arrays to do it, but I would use multi-dimensioned arrays.
Dim Enemy(99,4) would create an array to handle up to 5 attributes (0-4) of 100 enemies (0-99). Just alter the 4 to accomodate the number of attributes you wish to store for each enemy.
When you create the first enemy (enemy 0), the enemy number would be stored the first array element (0-99) and the attributes in the second array elements (0-4).
This would give you:
Enemy(0,0) = 100 (Enemy 1's starting health)
Enemy(0,1) = 20 (Enemy 1's spellcasting strength)
Enemy(0,2) = 0 (Enemy 1's tiredness)
Enemy(0,3) = 0 (Enemy 1's hunger)
and so on.
When you create the next one, that would be enemy number 1, so you repeat the above, but with a 1 as the first array element at which point you can use 0 to 4 again as the second element index:
Enemy(1,0) = 100 (Enemy 2's starting health)
Enemy(1,1) = 20 (Enemy 2's spellcasting strength)
Enemy(1,2) = 0 (Enemy 2's tiredness)
Enemy(1,3) = 0: (Enemy 2's hunger)
At any time in the game, Enemy(19,1) would equal the spellcasting strength of enemy 20! If you battle with enemy 32 then hit points are deducted from Enemy(31,0).
See how it works?
Obviously a hundred enemies would be a lot of typing, so you do it in a loop using variables:
Dim Enemy(99,4)
NumEnemies = 50
For N = 1 To NumEnemies
Rem Create/Load enemy object 'N-1' here
Enemy(N-1,0) = 100: Rem Health
Enemy(N-1,1) = 20: Rem Magic
Enemy(N-1,2) = 0: Rem Sleepy
Enemy(N-1,3) = 0: Rem Hunger
Next N
(This assumes that all enemies start off with the same attributes).
During the game, another loop can decrease the values in the array.
For example:
Enemy(44,2) = Enemy(44,2)+1
...will increase the tiredness of enemy 45 by 1. If you create a float array, you can slow down the attributes increase or reduction by adding or subtracting 0.1 (or less) each time - instead of 1.
TDK_Man