Example #1
0
        public IList <Card> RemoveAll()
        {
            IList <Card> removedCards = cards;

            cards.Clear();
            return(removedCards);
        }
Example #2
0
        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;
            }
        }