private void btnAdd_Click(object sender, EventArgs e) { GroupMember groupMember = lstMembers.SelectedItem as GroupMember; List <NGuid> boardAssetIds = new List <NGuid>(); if (groupMember != null) { boardAssetIds.Add(groupMember.CreatureBoardAsset.BoardAssetId); } else { foreach (GroupMember member in lstMembers.Items) { boardAssetIds.Add(member.CreatureBoardAsset.BoardAssetId); } } if (!int.TryParse(tbxNumCreatures.Text, out int numCreaturesToSpawn)) { numCreaturesToSpawn = 1; tbxNumCreatures.Text = "1"; } else { // TODO: Confirm with the user if this number is high. if (numCreaturesToSpawn > MaxCreaturesToSpawnAtOnce) { Talespire.Log.Warning($"{numCreaturesToSpawn} is too many creatures to spawn at once. Dropping to {MaxCreaturesToSpawnAtOnce}."); numCreaturesToSpawn = MaxCreaturesToSpawnAtOnce; } numCreaturesToSpawn = Math.Min(numCreaturesToSpawn, MaxCreaturesToSpawnAtOnce); } List <string> spawnedCreatureIds = MiniGrouperScript?.SpawnMoreMembers(numCreaturesToSpawn, boardAssetIds); lock (newlySpawnedCreatureLock) newlySpawnedCreatureIds.AddRange(spawnedCreatureIds); UpdateNewCreaturesSoon(); }