Example #1
0
        protected override OptionResult RunAll(List <IMiniSimDescription> sims)
        {
            List <SimDescription> trueSims = new List <SimDescription>();

            foreach (IMiniSimDescription miniSim in sims)
            {
                SimDescription trueSim = miniSim as SimDescription;
                if (trueSim == null)
                {
                    continue;
                }

                trueSims.Add(trueSim);
            }

            int termLen   = 0;
            int totalCost = 0;

            List <IEnrollmentData> list = EnrollmentDialogEx.Show(trueSims[0], trueSims, true, out termLen, out totalCost);

            if ((list != null) && (list.Count > 0))
            {
                AcademicCareer.GlobalTermLength = (AcademicCareer.TermLength)termLen;

                foreach (IEnrollmentData data in list)
                {
                    SimDescription enrollingSimDesc = data.EnrollingSimDesc as SimDescription;
                    if ((enrollingSimDesc != null) &&
                        (enrollingSimDesc.CareerManager != null) &&
                        (enrollingSimDesc.CareerManager.DegreeManager != null))
                    {
                        enrollingSimDesc.CareerManager.DegreeManager.SetEnrollmentData(data);

                        if (enrollingSimDesc.CreatedSim != null)
                        {
                            EventTracker.SendEvent(new AcademicEvent(EventTypeId.kEnrolledInUniversity, enrollingSimDesc.CreatedSim, (AcademicDegreeNames)data.AcademicDegreeName));
                        }

                        AcademicCareer.EnrollSimInAcademicCareer(enrollingSimDesc, (AcademicDegreeNames)data.AcademicDegreeName, data.CourseLoad);

                        CustomAcademicDegrees.AdjustCustomAcademics(enrollingSimDesc);
                    }
                }
            }

            return(OptionResult.SuccessRetain);
        }
Example #2
0
        public static bool EnrollInAcademicCareer(Sim actor, IEnumerable <SimDescription> choices, out List <SimDescription> others, out int tuitionCost)
        {
            others      = null;
            tuitionCost = 0;
            if (!IntroTutorial.IsRunning || IntroTutorial.AreYouExitingTutorial())
            {
                if ((actor.DegreeManager != null) && actor.DegreeManager.ShouldDisplaySUATMessage(actor.SimDescription))
                {
                    SimpleMessageDialog.Show(Localization.LocalizeString("Gameplay/Objects/Electronics/Phone:HaveYouTakenSUAT", new object[0]), Localization.LocalizeString("Gameplay/Objects/Electronics/Phone:SUATBenefits", new object[0]), ModalDialog.PauseMode.PauseSimulator);
                }

                if (!UIUtils.IsOkayToStartModalDialog())
                {
                    return(false);
                }

                int termLen   = 0;
                int totalCost = 0;
                List <IEnrollmentData> list = EnrollmentDialogEx.Show(actor.SimDescription, choices, false, out termLen, out totalCost);
                if ((list != null) && (list.Count > 0))
                {
                    TravelUtil.PlayerMadeTravelRequest = true;
                    foreach (IEnrollmentData data in list)
                    {
                        SimDescription enrollingSimDesc = data.EnrollingSimDesc as SimDescription;
                        if (((enrollingSimDesc != null) && (enrollingSimDesc.CareerManager != null)) && (enrollingSimDesc.CareerManager.DegreeManager != null))
                        {
                            if (others == null)
                            {
                                others = new List <SimDescription>();
                            }
                            others.Add(enrollingSimDesc);
                            enrollingSimDesc.CareerManager.DegreeManager.SetEnrollmentData(data);
                            EventTracker.SendEvent(new AcademicEvent(EventTypeId.kEnrolledInUniversity, enrollingSimDesc.CreatedSim, (AcademicDegreeNames)data.AcademicDegreeName));
                        }
                    }
                    tuitionCost = -totalCost;

                    AcademicCareer.GlobalTermLength = (AcademicCareer.TermLength)termLen;
                    return(true);
                }
            }
            return(false);
        }