public IList <Card> RemoveAll() { IList <Card> removedCards = cards; cards.Clear(); return(removedCards); }
private void SelectPhonemes(ProceduralLanguageFactory factory) { Random rng = factory.RNG; Onsets.Clear(); Nuclei.Clear(); Codae.Clear(); Phonotactics diphthongs = factory.Diphthongs.SelectRandom(); IEnumerable <Vowel> vowels = factory.SelectRandomVowels(); switch (diphthongs) { case Phonotactics.Forbidden: AddNuclei(vowels, 0.2, 1, rng); break; case Phonotactics.Optional: AddNuclei(vowels, 0.2, 1, rng); AddNuclei(factory.SelectMatchingDiphthongs(vowels), 0.01, 0.1, rng); break; case Phonotactics.Required: AddNuclei(factory.SelectMatchingDiphthongs(vowels), 0.01, 0.1, rng); break; } Phonotactics clusters = factory.ConsonantClusters.SelectRandom(); IEnumerable <Consonant> consonants = factory.SelectRandomConsonants(); switch (clusters) { case Phonotactics.Forbidden: if (AllowsOnset) { AddOnsets(consonants, 0.2, 1, rng); } if (AllowsCoda) { AddCodae(consonants, 0.2, 1, rng); } break; case Phonotactics.Optional: if (AllowsOnset) { AddOnsets(consonants, 0.2, 1, rng); AddOnsetClusters(factory.SelectMatchingClusters(consonants), 0.01, 0.1, rng); } if (AllowsCoda) { AddCodae(consonants, 0.2, 1, rng); AddCodaClusters(factory.SelectMatchingClusters(consonants), 0.01, 0.1, rng); } break; case Phonotactics.Required: if (AllowsOnset) { AddOnsetClusters(factory.SelectMatchingClusters(consonants), 0.01, 0.1, rng); } if (AllowsCoda) { AddCodaClusters(factory.SelectMatchingClusters(consonants), 0.01, 0.1, rng); } break; } }