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); } }
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); } }