Ejemplo n.º 1
0
        public string GetPronoun(
            EnglishPronounForm form, EnglishNumber number, EnglishPerson person, EnglishGender?gender)
        {
            var numberIndex = number == EnglishNumber.Plural ? 1 : 0;
            var formIndex   = (int)form;
            var personIndex = person == EnglishPerson.Third ? 2 + (int)gender.Value : (int)person;

            return(Pronouns[numberIndex, formIndex, personIndex]);
        }
Ejemplo n.º 2
0
        protected virtual string GetString(
            GameEntity actorEntity, EnglishPerson person, SenseType sense, bool?definiteDeterminer = false)
        {
            if (actorEntity == null)
            {
                return(null);
            }

            if (person == EnglishPerson.Second)
            {
                return(EnglishMorphologicalProcessor.GetPronoun(
                           EnglishPronounForm.Normal, EnglishNumber.Singular, person, gender: null));
            }

            if (!sense.CanIdentify())
            {
                return("something");
            }

            var properName = actorEntity.AI?.ProperName ?? actorEntity.Player?.ProperName;

            if (properName != null)
            {
                return(properName);
            }

            var name = "";

            foreach (var raceEntity in actorEntity.Manager.RacesToBeingRelationship[actorEntity.Id].Values)
            {
                name += " " + raceEntity.Race.TemplateName;
            }

            if (definiteDeterminer.HasValue)
            {
                name = (definiteDeterminer.Value ? "the" : "a") + name;
            }

            return(name.Trim());
        }
Ejemplo n.º 3
0
 public string ProcessVerbSimplePresent(string verbPhrase, EnglishPerson person) => ProcessVerb(
     verbPhrase,
     person == EnglishPerson.Third
         ? EnglishVerbForm.ThirdPersonSingularPresent
         : EnglishVerbForm.BareInfinitive);
Ejemplo n.º 4
0
 protected virtual string GetString(GameEntity actorEntity, EnglishPerson person, SenseType sense)
 => GetString(
     actorEntity,
     person,
     sense,
     definiteDeterminer: true);