コード例 #1
0
 internal PersonalInvolvement(PastEvent linkedEvent, Person linkedPerson, PersonalInvolvementType type, Guid referenceId, GameTime.GameTime started, GameTime.GameTime ended = null) : base(type, referenceId)
 {
     LinkedEvent  = linkedEvent;
     LinkedPerson = linkedPerson;
     Started      = started;
     Ended        = ended;
     ItemType     = MemoryItemType.PersonalInvolvement;
 }
コード例 #2
0
        public override void ChangeType(Enum newType)
        {
            var type = (PersonalInvolvementType)newType;

            Type               = type;
            Description        = PersonalInvolvementDescription.ResourceManager.GetString(type.ToString());
            ReverseDescription = PersonalInvolvementReverseDescription.ResourceManager.GetString(type.ToString());
        }
コード例 #3
0
        /// <inheritdoc />
        public override MemoryItem GetInaccurateCopy()
        {
            GameTime.GameTime       started = Started;
            GameTime.GameTime       ended   = Ended;
            PersonalInvolvementType 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 = (PersonalInvolvementType)RandomValueGenerator.GenerateIntWithMaxValue(Enum.GetNames(typeof(PersonalInvolvementType)).Length);
                break;

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

            var copy = new PersonalInvolvement(LinkedEvent, LinkedPerson, type, ReferenceId)
            {
                ItemType           = ItemType,
                Description        = Description,
                ReverseDescription = ReverseDescription,
                Started            = started,
                Ended = ended,
                Name  = Name
            };

            return(copy);
        }
コード例 #4
0
 public PersonalInvolvement GetPersonalInvolvement(string linkedEventName, PersonalInvolvementType involvementType)
 {
     return(_linkedEvents.FirstOrDefault(i => i.LinkedEvent.Name == linkedEventName && i.Type == involvementType));
 }
コード例 #5
0
 /// <summary>
 /// Find the link object to an event by the way this person was involved in it.
 /// </summary>
 /// <param name="involvementType">Type of involvement based on the enum</param>
 /// <returns>a list of all the relevant PersonalInvolvement</returns>
 public PersonalInvolvement GetPersonalInvolvementByType(PersonalInvolvementType involvementType)
 {
     return(_linkedEvents.FirstOrDefault(i => i.Type == involvementType));
 }
コード例 #6
0
        //public PastEvent FindLinkedEventByName(string eventName)
        //{
        //    return _linkedEvents.FirstOrDefault(e => e.LinkedEvent.Name == eventName)?.LinkedEvent;
        //}

        /// <summary>
        /// Find an event by the way this person was involved in it.
        /// </summary>
        /// <param name="involvementType">Type of involvement based on the enum</param>
        /// <returns>a list of all the relevant events</returns>
        public List <PastEvent> FindLinkedEventsByInvolvementType(PersonalInvolvementType involvementType)
        {
            return(_linkedEvents.Where(involvement => involvement.Type == involvementType).Select(i => i.LinkedEvent).ToList());
        }
コード例 #7
0
        /// <summary>
        /// Creates a link that defines a link between a Person and an Event
        /// </summary>
        /// <param name="linkedPerson">Linked Person</param>
        /// <param name="linkedEvent">Event linked</param>
        /// <param name="type">How a Person was involved in an Event</param>
        /// <param name="started">Date Started</param>
        /// <param name="ended">Date Ended</param>
        public PersonalInvolvement CreateInvolvementBetweenPersonAndEvent(Person linkedPerson, PastEvent linkedEvent, PersonalInvolvementType type, GameTime.GameTime started, GameTime.GameTime ended = null)
        {
            var personalInvolvement = new PersonalInvolvement(linkedEvent, linkedPerson, type, Guid.NewGuid(), started, ended);

            linkedPerson.AddPersonalInvolvement(personalInvolvement);
            linkedEvent.AddAssociatedPerson(personalInvolvement);

            return(personalInvolvement);
        }
コード例 #8
0
        /// <summary>
        /// Creates a link that defines a link between a Person and an Event
        /// </summary>
        /// <param name="linkedPerson">Person linked to the event</param>
        /// <param name="linkedEvent">Event linked to the Person</param>
        /// <param name="type">How a Person was involved in an Event</param>
        public PersonalInvolvement CreateInvolvementBetweenPersonAndEvent(Person linkedPerson, PastEvent linkedEvent, PersonalInvolvementType type)
        {
            var personalInvolvement = new PersonalInvolvement(linkedEvent, linkedPerson, type, Guid.NewGuid());

            linkedPerson.AddPersonalInvolvement(personalInvolvement);
            linkedEvent.AddAssociatedPerson(personalInvolvement);

            return(personalInvolvement);
        }
コード例 #9
0
 internal PersonalInvolvement(PastEvent linkedEvent, Person linkedPerson, PersonalInvolvementType type, Guid referenceId) : base(type, referenceId)
 {
     LinkedEvent  = linkedEvent;
     LinkedPerson = linkedPerson;
     ItemType     = MemoryItemType.PersonalInvolvement;
 }