/// <summary>
        /// Generates an encounter from the given encounter elements and adds game objects to vacant cells as needed.
        /// </summary>
        /// <param name="cells">The cells. These can be vacant or unvacant.</param>
        /// <param name="encounter">The encounter to generate objects from.</param>
        /// <returns>A collection of generated elements</returns>
        public IEnumerable <GameObjectBase> GenerateEncounter(IEnumerable <GameCell> cells, EncounterData encounter, IRandomization randomization)
        {
            var encounterElements = GenerateElementsForEncounter(encounter, randomization);

            return(AddEncounterElementsToCells(encounterElements, cells, randomization));
        }