Example #1
0
        protected static void OnBirth(Event e)
        {
            PregnancyEvent pregEvent = e as PregnancyEvent;

            if (pregEvent == null)
            {
                return;
            }

            Sim actor = e.Actor as Sim;

            if (actor == null)
            {
                return;
            }

            // Means of differentiating between parents
            if (!actor.SimDescription.IsPregnant)
            {
                return;
            }

            foreach (Sim child in pregEvent.Babies)
            {
                Inoculate(child, actor);
            }
        }
    protected override void Execute()
    {
        edible.gameObject.SetActive(false);
        //TODO this should be handled by the edibles strategy instead
        SnakePartComponent snakePart;

        if (mouth.TryGetComponents(out snakePart))
        {
            var pregEvent = new PregnancyEvent(snakePart);
            EgoEvents <PregnancyEvent> .AddEvent(pregEvent);
        }
    }
Example #3
0
 void Handle(PregnancyEvent e)
 {
     constraint.ForEachGameObject((egoComponent, transform, snakePart) =>
     {
         if (e.newParent == snakePart)
         {
             if (!snakePart.isPregnant)
             {
                 var commandEvent = new CommandEvent(new PregnancyCommand(snakePart, transform.position, true), 0);
                 EgoEvents <CommandEvent> .AddEvent(commandEvent);
             }
         }
     });
 }