public override void ChangeType(Enum newType)
        {
            var type = (OccupationalInvolvementType)newType;

            Type               = type;
            Description        = OccupationalInvolvementDescription.ResourceManager.GetString(type.ToString());
            ReverseDescription = OccupationalInvolvementReverseDescription.ResourceManager.GetString(type.ToString());
        }
        /// <inheritdoc />
        public override MemoryItem GetInaccurateCopy()
        {
            GameTime.GameTime           started = Started;
            GameTime.GameTime           ended   = Ended;
            OccupationalInvolvementType 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 = (OccupationalInvolvementType)RandomValueGenerator.GenerateIntWithMaxValue(Enum.GetNames(typeof(OccupationalInvolvementType)).Length);
                break;

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

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

            return(copy);
        }
Exemplo n.º 3
0
        /// <summary>
        /// This relationship links an Occupation and an Event. It was created to admit that someone might not know the Person linked to an Occupation, i.e. the King of Temeria.
        /// </summary>
        /// <param name="linkedOccupation">Occupation linked</param>
        /// <param name="linkedEvent">Event linked</param>
        /// <param name="type">Nature of the link between Occupation and Event</param>
        /// <param name="started">Date Started</param>
        /// <param name="ended">Date Ended</param>
        /// <returns>The new link</returns>
        public OccupationalInvolvement CreateInvolvementBetweenOccupationAndEvent(Occupation linkedOccupation, PastEvent linkedEvent, OccupationalInvolvementType type, GameTime.GameTime started, GameTime.GameTime ended = null)
        {
            var occupationalInvolvement = new OccupationalInvolvement(linkedEvent, linkedOccupation, type, Guid.NewGuid(), started, ended);

            linkedOccupation.AddLinkedEvent(occupationalInvolvement);
            linkedEvent.AddOccupation(occupationalInvolvement);

            return(occupationalInvolvement);
        }
Exemplo n.º 4
0
        /// <summary>
        /// This relationship links an Occupation and an Event. It was created to admit that someone might not know the Person linked to an Occupation, i.e. the King of Temeria.
        /// </summary>
        /// <param name="linkedOccupation">Occupation linked</param>
        /// <param name="linkedEvent">Event linked</param>
        /// <param name="type">Nature of the link between Occupation and Event</param>
        /// <returns>The new link</returns>
        public OccupationalInvolvement CreateInvolvementBetweenOccupationAndEvent(Occupation linkedOccupation, PastEvent linkedEvent, OccupationalInvolvementType type)
        {
            var occupationalInvolvement = new OccupationalInvolvement(linkedEvent, linkedOccupation, type, Guid.NewGuid());

            linkedOccupation.AddLinkedEvent(occupationalInvolvement);
            linkedEvent.AddOccupation(occupationalInvolvement);

            return(occupationalInvolvement);
        }
Exemplo n.º 5
0
 public List <Occupation> FindOccupationsByInvolvementType(OccupationalInvolvementType involvementType)
 {
     return(_linkedOccupations?.Where(o => o.Type == involvementType).Select(o => o.LinkedOccupation).ToList());
 }
Exemplo n.º 6
0
        //public PastEvent FindLinkedEvent(string eventName)
        //{
        //    return _linkedEvents?.FirstOrDefault(i => i.LinkedEvent.Name == eventName)?.LinkedEvent;
        //}

        public List <PastEvent> FindLinkedEventsByInvolvementType(OccupationalInvolvementType involvementType)
        {
            return(_linkedEvents.Where(involvement => involvement.Type == involvementType).Select(i => i.LinkedEvent).ToList());
        }
 internal OccupationalInvolvement(PastEvent linkedEvent, Occupation linkedOccupation, OccupationalInvolvementType type, Guid referenceId,
                                  GameTime.GameTime started, GameTime.GameTime ended = null) : base(type, referenceId)
 {
     LinkedEvent      = linkedEvent;
     LinkedOccupation = linkedOccupation;
     Started          = started;
     Ended            = ended;
     ItemType         = MemoryItemType.OccupationalInvolvement;
 }
 internal OccupationalInvolvement(PastEvent linkedEvent, Occupation linkedOccupation, OccupationalInvolvementType type, Guid referenceId) : base(type, referenceId)
 {
     LinkedEvent      = linkedEvent;
     LinkedOccupation = linkedOccupation;
     ItemType         = MemoryItemType.OccupationalInvolvement;
 }