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]); }
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()); }
public string ProcessVerbSimplePresent(string verbPhrase, EnglishPerson person) => ProcessVerb( verbPhrase, person == EnglishPerson.Third ? EnglishVerbForm.ThirdPersonSingularPresent : EnglishVerbForm.BareInfinitive);
protected virtual string GetString(GameEntity actorEntity, EnglishPerson person, SenseType sense) => GetString( actorEntity, person, sense, definiteDeterminer: true);