// Include necessary file
#include "nw_i0_generic"

void main()
{
    // Check for a 1% chance to spawn enemies
    if (Random(100) + 1 == 1)
    {
        // Initialize and populate the enemy array
        array aEnemies;
        AddArrayString(aEnemies, "cas_enooze3");
        AddArrayString(aEnemies, "cas_enemyooze1");
        AddArrayString(aEnemies, "cas_enemyooze004");
        AddArrayString(aEnemies, "cas_enemyooze003");
        AddArrayString(aEnemies, "cas_enemyooze002");

        // Initialize and populate the waypoint array
        array aWaypoints;
        AddArrayString(aWaypoints, "WP_CAS_INVASIONPOINT1");
        AddArrayString(aWaypoints, "WP_CAS_INVASIONPOINT2");
        AddArrayString(aWaypoints, "WP_CAS_INVASIONPOINT3");
        AddArrayString(aWaypoints, "WP_CAS_INVASIONPOINT4");

        // Decide the number of enemies to spawn (up to 8)
        int nEnemiesToSpawn = Random(8) + 1;

        // Spawn the enemies
        for (int i = 0; i < nEnemiesToSpawn; i++)
        {
            // Select a random enemy and waypoint
            string sEnemy = GetArrayString(aEnemies, Random(GetArraySize(aEnemies)));
            string sWaypoint = GetArrayString(aWaypoints, Random(GetArraySize(aWaypoints)));

            // Get the waypoint location object
            object oWaypoint = GetObjectByTag(sWaypoint);

            // Spawn the enemy at the waypoint
            CreateObject(OBJECT_TYPE_CREATURE, sEnemy, GetLocation(oWaypoint));
        }

        // Delete the LOOT_ID variable from the boss
        DeleteLocalInt(OBJECT_SELF, "LOOT_ID");
    }
}
