Exemplo n.º 1
0
        public override bool InRabbitHole()
        {
            try
            {
                AfterschoolActivityType chosenActivity = (InteractionDefinition as Definition).ChosenActivity;
                if (AfterschoolActivityEx.IsChildActivity(chosenActivity) && AfterschoolActivityEx.AlreadyHasChildActivity(Actor.SimDescription))
                {
                    return(false);
                }

                StartStages();
                BeginCommodityUpdates();
                bool succeeded = DoLoop(~(ExitReason.Replan | ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached));
                EndCommodityUpdates(succeeded);

                if (succeeded && AfterschoolActivityEx.AddNewActivity(Actor.SimDescription, chosenActivity))
                {
                    EventTracker.SendEvent(new AfterschoolActivityEvent(EventTypeId.kSignedUpForAfterschoolActivity, Actor, Target, chosenActivity));
                }
                return(succeeded);
            }
            catch (ResetException)
            {
                throw;
            }
            catch (Exception e)
            {
                Common.Exception(Actor, Target, e);
                return(false);
            }
        }
Exemplo n.º 2
0
 protected new bool IsValidSim(Sim s)
 {
     if (!AfterschoolActivityEx.IsValidSimForSimPicker(s.SimDescription, ChosenActivity))
     {
         return(false);
     }
     return(true);
 }
Exemplo n.º 3
0
 // Externalized to MasterController and StoryProgression
 public static bool PerformAfterschoolPostLoop(GoToSchoolInRabbitHole interaction, AfterschoolActivity activity)
 {
     try
     {
         return(AfterschoolActivityEx.PerformAfterschoolPostLoop(interaction, activity));
     }
     catch (Exception e)
     {
         Common.Exception("GetAfterSchoolDelegate", e);
         return(false);
     }
 }
Exemplo n.º 4
0
 // Externalized to MasterController and StoryProgression
 public static InteractionInstance.InsideLoopFunction PerformAfterschoolLoop(GoToSchoolInRabbitHole interaction, AfterschoolActivity activity)
 {
     try
     {
         return(AfterschoolActivityEx.PerformAfterschoolLoop(interaction, activity));
     }
     catch (Exception e)
     {
         Common.Exception("GetAfterSchoolDelegate", e);
         return(null);
     }
 }
            public override void AddInteractions(InteractionObjectPair iop, Sim actor, SchoolRabbitHole target, List <InteractionObjectPair> results)
            {
                foreach (AfterschoolActivityData data in AfterschoolActivityBooter.Activities.Values)
                {
                    if (!AfterschoolActivityEx.HasAfterschoolActivityOfType(actor.SimDescription, data.mActivity.CurrentActivityType))
                    {
                        continue;
                    }

                    results.Add(new InteractionObjectPair(new Definition(data.mActivity.CurrentActivityType), iop.Target));
                }
            }
        public override bool Run()
        {
            try
            {
                if ((SelectedObjects == null) || (SelectedObjects.Count <= 0x0))
                {
                    return(false);
                }
                AfterschoolActivityType chosenActivity = (InteractionDefinition as Definition).ChosenActivity;
                if (AfterschoolActivityEx.IsChildActivity(chosenActivity) && AfterschoolActivityEx.AlreadyHasChildActivity(Actor.SimDescription))
                {
                    return(false);
                }

                StandardEntry();
                if (!Target.StartComputing(this, SurfaceHeight.Table, true))
                {
                    StandardExit();
                    return(false);
                }

                Target.StartVideo(Computer.VideoType.Browse);
                AnimateSim("GenericTyping");
                bool flag = DoTimedLoop(kTimeToSpendSigningUp, ~(ExitReason.Replan | ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached));
                if (flag)
                {
                    foreach (object obj2 in SelectedObjects)
                    {
                        Sim actor = obj2 as Sim;
                        if (!AfterschoolActivityEx.HasAfterschoolActivityOfType(actor.SimDescription, chosenActivity) && AfterschoolActivityEx.AddNewActivity(actor.SimDescription, chosenActivity))
                        {
                            EventTracker.SendEvent(new AfterschoolActivityEvent(EventTypeId.kSignUpChildForAfterschoolActivity, Actor, actor, chosenActivity));
                            EventTracker.SendEvent(new AfterschoolActivityEvent(EventTypeId.kSignedUpForAfterschoolActivity, actor, Target, chosenActivity));
                        }
                    }
                }

                Target.StopComputing(this, Computer.StopComputingAction.TurnOff, false);
                StandardExit();
                return(flag);
            }
            catch (ResetException)
            {
                throw;
            }
            catch (Exception e)
            {
                Common.Exception(Actor, Target, e);
                return(false);
            }
        }
Exemplo n.º 7
0
 public override bool Test(Sim a, SchoolRabbitHole target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
 {
     try
     {
         if (!AfterschoolActivityEx.MeetsCommonAfterschoolActivityRequirements(a.SimDescription, ChosenActivity, ref greyedOutTooltipCallback))
         {
             return(false);
         }
         return(true);
     }
     catch (Exception e)
     {
         Common.Exception(a, target, e);
         return(false);
     }
 }
Exemplo n.º 8
0
            public override void AddInteractions(InteractionObjectPair iop, Sim actor, Computer target, List <InteractionObjectPair> results)
            {
                if (AfterschoolActivityEx.AlreadyHasChildActivity(actor.SimDescription))
                {
                    return;
                }

                foreach (AfterschoolActivityData data in AfterschoolActivityBooter.Activities.Values)
                {
                    if (!data.IsValidFor(actor.SimDescription))
                    {
                        continue;
                    }

                    results.Add(new InteractionObjectPair(new Definition(data.mActivity.CurrentActivityType), iop.Target));
                }
            }
Exemplo n.º 9
0
        public override bool InRabbitHole()
        {
            try
            {
                bool succeeded = false;
                if ((SelectedObjects != null) && (SelectedObjects.Count > 0x0))
                {
                    AfterschoolActivityType chosenActivity = (InteractionDefinition as Definition).ChosenActivity;
                    if (AfterschoolActivityEx.IsChildActivity(chosenActivity) && AfterschoolActivityEx.AlreadyHasChildActivity(Actor.SimDescription))
                    {
                        return(false);
                    }

                    StartStages();
                    BeginCommodityUpdates();
                    succeeded = DoLoop(~(ExitReason.Replan | ExitReason.MidRoutePushRequested | ExitReason.ObjectStateChanged | ExitReason.PlayIdle | ExitReason.MaxSkillPointsReached));
                    EndCommodityUpdates(succeeded);
                    if (!succeeded)
                    {
                        return(succeeded);
                    }

                    foreach (object obj2 in SelectedObjects)
                    {
                        Sim actor = (Sim)obj2;
                        if (!AfterschoolActivityEx.HasAfterschoolActivityOnDays(actor.SimDescription, AfterschoolActivityEx.GetDaysForActivityType(chosenActivity)) && AfterschoolActivityEx.AddNewActivity(actor.SimDescription, chosenActivity))
                        {
                            EventTracker.SendEvent(new AfterschoolActivityEvent(EventTypeId.kSignUpChildForAfterschoolActivity, Actor, actor, chosenActivity));
                            EventTracker.SendEvent(new AfterschoolActivityEvent(EventTypeId.kSignedUpForAfterschoolActivity, actor, Target, chosenActivity));
                        }
                    }
                }
                return(succeeded);
            }
            catch (ResetException)
            {
                throw;
            }
            catch (Exception e)
            {
                Common.Exception(Actor, Target, e);
                return(false);
            }
        }
 public override bool Test(Sim a, SchoolRabbitHole target, bool isAutonomous, ref GreyedOutTooltipCallback greyedOutTooltipCallback)
 {
     try
     {
         School school = a.School;
         if (school != null)
         {
             List <AfterschoolActivity> afterschoolActivities = school.AfterschoolActivities;
             if (((afterschoolActivities != null) && (afterschoolActivities.Count > 0x0)) && AfterschoolActivityEx.HasAfterschoolActivityOfType(a.SimDescription, ChosenActivity))
             {
                 return(true);
             }
         }
         return(false);
     }
     catch (Exception e)
     {
         Common.Exception(a, target, e);
         return(false);
     }
 }