示例#1
0
 internal PersonalTie(Place linkedLocation, Person linkedPerson, PersonalTieType type, Guid referenceId, GameTime.GameTime started, GameTime.GameTime ended = null) : base(type, referenceId)
 {
     LinkedLocation = linkedLocation;
     LinkedPerson   = linkedPerson;
     Started        = started;
     Ended          = ended;
     ItemType       = MemoryItemType.PersonalTie;
 }
示例#2
0
        public override void ChangeType(Enum newType)
        {
            var type = (PersonalTieType)newType;

            Type               = type;
            Description        = PersonalTieDescription.ResourceManager.GetString(type.ToString());
            ReverseDescription = PersonalTieReverseDescription.ResourceManager.GetString(type.ToString());
        }
示例#3
0
        /// <inheritdoc />
        public override MemoryItem GetInaccurateCopy()
        {
            GameTime.GameTime started = Started;
            GameTime.GameTime ended   = Ended;
            PersonalTieType   type    = Type;

            //TODO : Randomize name

            int falsificationCase = RandomValueGenerator.GenerateIntWithMaxValue(4);

            switch (falsificationCase)
            {
            case 1:
                int variance = RandomValueGenerator.GenerateRealWithinValues(-10, 10);
                started?.SetYear(started.GetYear() + variance);
                break;

            case 2:
                int deathVariance = RandomValueGenerator.GenerateRealWithinValues(-10, 10);
                ended?.SetYear(ended.GetYear() + deathVariance);
                break;

            case 3:
                type = (PersonalTieType)RandomValueGenerator.GenerateIntWithMaxValue(Enum.GetNames(typeof(PersonalTieType)).Length);
                break;

            case 4:
                type     = (PersonalTieType)RandomValueGenerator.GenerateIntWithMaxValue(Enum.GetNames(typeof(PersonalTieType)).Length);
                variance = RandomValueGenerator.GenerateRealWithinValues(-10, 10);
                started?.SetYear(started.GetYear() + variance);
                break;
            }

            var copy = new PersonalTie(LinkedLocation, LinkedPerson, type, ReferenceId, started, ended)
            {
                ItemType           = ItemType,
                Description        = Description,
                ReverseDescription = ReverseDescription,
                Name = Name
            };

            return(copy);
        }
示例#4
0
 public Place FindPlaceByPersonalTieType(PersonalTieType type)
 {
     return(_linkedPlaces?.FirstOrDefault(p => p.Type == type)?.LinkedLocation);
 }
示例#5
0
 public PersonalTie FindPersonalTie(string placeName, PersonalTieType type)
 {
     return(_linkedPlaces?.FirstOrDefault(p => p.LinkedLocation.Name == placeName && p.Type == type));
 }
示例#6
0
 internal PersonalTie(Place linkedLocation, Person linkedPerson, PersonalTieType type, Guid referenceId) : base(type, referenceId)
 {
     LinkedLocation = linkedLocation;
     LinkedPerson   = linkedPerson;
     ItemType       = MemoryItemType.PersonalTie;
 }
示例#7
0
        /// <summary>
        /// Creates a link between a Person and a Place.
        /// </summary>
        /// <param name="linkedPerson">Linked Person</param>
        /// <param name="linkedPlace">Linked Place</param>
        /// <param name="type">The nature of the tie between a Person and a Place</param>
        /// <param name="started">Date Started</param>
        /// <param name="ended">Date Ended</param>
        /// <returns>The new link</returns>
        public PersonalTie CreateTieBetweenPersonAndPlace(Person linkedPerson, Place linkedPlace, PersonalTieType type, GameTime.GameTime started, GameTime.GameTime ended = null)
        {
            var personalTie = new PersonalTie(linkedPlace, linkedPerson, type, Guid.NewGuid(), started, ended);

            linkedPerson.AddLinkedPlace(personalTie);
            linkedPlace.AddLinkedPerson(personalTie);

            return(personalTie);
        }
示例#8
0
        /// <summary>
        /// Creates a link between a Person and a Place.
        /// </summary>
        /// <param name="linkedPerson">Linked Person</param>
        /// <param name="linkedPlace">Linked Place</param>
        /// <param name="type">The nature of the tie between a Person and a Place</param>
        /// <returns>The new link</returns>
        public PersonalTie CreateTieBetweenPersonAndPlace(Person linkedPerson, Place linkedPlace, PersonalTieType type)
        {
            var personalTie = new PersonalTie(linkedPlace, linkedPerson, type, Guid.NewGuid());

            linkedPerson.AddLinkedPlace(personalTie);
            linkedPlace.AddLinkedPerson(personalTie);

            return(personalTie);
        }