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