Example #1
0
        protected override string GetLocalizedValue(AcademicDegreeNames value, ref ThumbnailKey icon)
        {
            AcademicDegreeStaticData degree = AcademicDegreeManager.GetStaticElement(value);

            if (degree == null)
            {
                return(null);
            }

            // icon = new ThumbnailKey(ResourceKey.CreatePNGKey(career.CareerIconColored, ResourceUtils.ProductVersionToGroupId(ProductVersion.BaseGame)), ThumbnailSize.Medium);

            return(degree.DegreeName);
        }
Example #2
0
        public static void AdjustCustomAcademics(SimDescription sim)
        {
            AcademicCareer academicCareer = sim.OccupationAsAcademicCareer;

            if (academicCareer == null)
            {
                return;
            }

            string progressStr = null;

            int progressKey = 0;

            float progress = academicCareer.mDegree.Progress;

            if (progress <= 0.25f)
            {
                progressStr = AcademicCareer.LocalizeString("FreshmanCourseLevelKey", new object[0x0]);
            }
            else if (progress <= 0.5f)
            {
                progressKey = 1;
                progressStr = AcademicCareer.LocalizeString("SophomoreCourseLevelKey", new object[0x0]);
            }
            else if (progress <= 0.75f)
            {
                progressKey = 2;
                progressStr = AcademicCareer.LocalizeString("JuniorCourseLevelKey", new object[0x0]);
            }
            else
            {
                progressKey = 3;
                progressStr = AcademicCareer.LocalizeString("SeniorCourseLevelKey", new object[0x0]);
            }

            AcademicDegreeStaticData staticData = academicCareer.mDegree.AcademicDegreeStaticData;

            foreach (AcademicCareer.CourseCreationSpec spec in academicCareer.mCourseSchedule)
            {
                string key = JobToString(spec.mJobCreationSpec.mJobId);
                if (string.IsNullOrEmpty(key))
                {
                    continue;
                }

                key = staticData.mDegreeDescKey + ":" + key + progressKey;

                spec.mCourseLocalizedName = Common.LocalizeEAString(sim.IsFemale, key, new object[] { progressStr });
            }
        }
Example #3
0
        private void OnDegreeChangeEx(WindowBase sender, UISelectionChangeEventArgs eventArgs)
        {
            try
            {
                EnrollmentDialogRowController controller;
                EnrollmentData enrollmentDataForSim = GetEnrollmentDataForSim(mSelectedSimDesc, out controller);
                if (enrollmentDataForSim != null)
                {
                    int num;
                    int num2;
                    FinancialAidtype aidtype;
                    CreditAwardtype  awardtype;
                    mHouseholdFunds -= enrollmentDataForSim.CostPerSim;
                    mHouseholdFunds -= enrollmentDataForSim.ScholarshipAmountPerSim;

                    AcademicDegreeStaticData staticElement = mDegreeCombo.EntryTags[(int)mDegreeCombo.CurrentSelection] as AcademicDegreeStaticData;

                    enrollmentDataForSim.AcademicDegreeName = (ulong)staticElement.AcademicDegreeName;
                    //enrollmentDataForSim.AcademicDegreeName = (ulong)(mDegreeCombo.CurrentSelection + 0x1L);

                    enrollmentDataForSim.CostPerSim              = UpdateFunds(enrollmentDataForSim.AcademicDegreeName, mSelectedSimDesc as SimDescription, out num2, out aidtype, out num, out awardtype);
                    enrollmentDataForSim.FinancialAidType        = aidtype;
                    enrollmentDataForSim.ScholarshipAmountPerSim = num2;
                    enrollmentDataForSim.CreditsAwardedPerSim    = num;
                    enrollmentDataForSim.CreditAwardType         = awardtype;
                    enrollmentDataForSim.CourseLoad              = this.mCourseLoad;
                    controller.mTextControlCost.Color            = (enrollmentDataForSim.CostPerSim < 0x0) ? RED : BLUE;
                    controller.Cost        = UIUtils.FormatMoney(Math.Abs(enrollmentDataForSim.CostPerSim));
                    controller.Scholarship = enrollmentDataForSim.ScholarshipAmountPerSim;
                    controller.AidType     = enrollmentDataForSim.FinancialAidType;

                    mDegreeDescription.Caption = Responder.Instance.LocalizationModel.LocalizeString(staticElement.DegreeDescKey, new object[0x0]);

                    UpdateCreditIconEx(enrollmentDataForSim.CreditsAwardedPerSim, enrollmentDataForSim.CreditAwardType, (AcademicDegreeNames)enrollmentDataForSim.AcademicDegreeName);
                    //UpdateCreditIcon(enrollmentDataForSim.CreditsAwardedPerSim, (int)enrollmentDataForSim.CreditAwardType, (int)enrollmentDataForSim.AcademicDegreeName);

                    UpdateDegreeProgressBar(mSelectedSimDesc, enrollmentDataForSim.AcademicDegreeName);
                }

                UpdateAcceptAvailability();
            }
            catch (Exception e)
            {
                Common.Exception("OnDegreeChangeEx", e);
            }
        }
Example #4
0
        protected static int OnSortByName(AcademicDegreeStaticData left, AcademicDegreeStaticData right)
        {
            try
            {
                string leftText = left.DegreeName;
                if (leftText == null)
                {
                    return(-1);
                }

                string rightText = right.DegreeName;
                if (rightText == null)
                {
                    return(1);
                }

                return(leftText.CompareTo(rightText));
            }
            catch (Exception e)
            {
                Common.Exception("OnSortByName", e);
                return(0);
            }
        }
Example #5
0
        // From AcademicDegreeManager:CreateAcademicDegreeTable
        protected override void Perform(BooterHelper.BootFile file, XmlDbRow row)
        {
            AcademicDegreeNames academicDegree = AcademicDegreeNames.Undefined;

            if (!row.TryGetEnum <AcademicDegreeNames>("AcademicDegreeEnum", out academicDegree, AcademicDegreeNames.Undefined))
            {
                academicDegree = unchecked ((AcademicDegreeNames)ResourceUtils.HashString64(row.GetString("AcademicDegreeEnum")));
            }

            BooterLogger.AddTrace("AcademicDegreeEnum: " + row.GetString("AcademicDegreeEnum"));

            string degreeNameKey             = row.GetString("AcademicDegreeName");
            string degreeDescKey             = row.GetString("AcademicDegreeDesc");
            string degreeIcon                = row.GetString("AcademicDegreeIcon");
            int    degreeCreditHours         = row.GetInt("AcademicDegreeRequiredCreditHours");
            float  degreeCostPerCredit       = row.GetFloat("AcademicDegreeCostPerCredit");
            string degreeResponsibilitiesKey = row.GetString("ResponsibilityTooltipKey");

            JobId academicDefaultCourseID;

            if (!row.TryGetEnum <JobId>("AcademicDefaultCourseID", out academicDefaultCourseID, JobId.AcademicsGenericRabbitHoleCourse))
            {
                // Custom
                academicDefaultCourseID = unchecked ((JobId)ResourceUtils.HashString64(row.GetString("AcademicDefaultCourseID")));
            }

            JobId academicDefaultLectureID;

            if (!row.TryGetEnum <JobId>("AcademicDefaultLectureID", out academicDefaultLectureID, JobId.Invalid))
            {
                // Custom
                academicDefaultLectureID = unchecked ((JobId)ResourceUtils.HashString64(row.GetString("AcademicDefaultLectureID")));
            }

            JobId academicDefaultLabID;

            if (!row.TryGetEnum <JobId>("AcademicDefaultLabID", out academicDefaultLabID, JobId.Invalid))
            {
                // Custom
                academicDefaultLabID = unchecked ((JobId)ResourceUtils.HashString64(row.GetString("AcademicDefaultLabID")));
            }

            List <OccupationNames> associatedOccupations = new List <OccupationNames>();
            List <string>          list2 = row.GetStringList("AssociatedOccupationNameEnum", ',', true);

            for (int i = 0x0; i < list2.Count; i++)
            {
                OccupationNames occupation;
                if (!ParserFunctions.TryParseEnum <OccupationNames>(list2[i], out occupation, OccupationNames.Undefined))
                {
                    occupation = unchecked ((OccupationNames)ResourceUtils.HashString64(row.GetString(list2[i])));
                }

                if (occupation != OccupationNames.Undefined)
                {
                    associatedOccupations.Add(occupation);
                }
            }

            OccupationNames grantedOccupation;

            if (!ParserFunctions.TryParseEnum <OccupationNames>("GrantedOccupationNameEnum", out grantedOccupation, OccupationNames.Undefined))
            {
                // Custom
                grantedOccupation = unchecked ((OccupationNames)ResourceUtils.HashString64(row.GetString("GrantedOccupationNameEnum")));
            }

            List <TraitNames> beneficialTraits;
            List <TraitNames> detrimentalTraits;
            List <TraitNames> suggestedTraits;

            ParserFunctions.TryParseCommaSeparatedList <TraitNames>(row["BeneficialTraits"], out beneficialTraits, TraitNames.Unknown);
            ParserFunctions.TryParseCommaSeparatedList <TraitNames>(row["DetrimentalTraits"], out detrimentalTraits, TraitNames.Unknown);
            ParserFunctions.TryParseCommaSeparatedList <TraitNames>(row["SuggestedTraits"], out suggestedTraits, TraitNames.Unknown);

            AcademicDegreeStaticData staticData = null;

            if (!AcademicDegreeManager.sDictionary.TryGetValue((ulong)academicDegree, out staticData))
            {
                staticData = new AcademicDegreeStaticData(academicDegree, degreeNameKey, degreeDescKey, degreeResponsibilitiesKey, degreeIcon, degreeCreditHours, degreeCostPerCredit, academicDefaultCourseID, academicDefaultLectureID, academicDefaultLabID, associatedOccupations, grantedOccupation, beneficialTraits, detrimentalTraits, suggestedTraits);
            }
            else
            {
                staticData.BeneficialTraits.AddRange(beneficialTraits);
                staticData.DetrimentalTraits.AddRange(detrimentalTraits);
                staticData.SuggestedTraits.AddRange(suggestedTraits);
                staticData.AssociatedOccupations.AddRange(associatedOccupations);
            }

            string skillsThatGrantXP = row.GetString("SkillsThatGrantXP");

            if (!string.IsNullOrEmpty(skillsThatGrantXP))
            {
                foreach (string str6 in skillsThatGrantXP.Split(new char[] { ';' }))
                {
                    string[] strArray2 = str6.Split(new char[] { ',' });
                    if (strArray2.Length != 0x2)
                    {
                        continue;
                    }

                    float num4 = ParserFunctions.ParseFloat(strArray2[0x1], -1234123f);
                    if (num4 == -1234123f)
                    {
                        continue;
                    }

                    // Custom
                    SkillNames skillName = SkillManager.sSkillEnumValues.ParseEnumValue(strArray2[0x0]);
                    if (skillName == SkillNames.None)
                    {
                        continue;
                    }

                    staticData.AddSkill(skillName, num4);
                }
            }

            AcademicDegreeManager.sDictionary[(ulong)academicDegree] = staticData;
        }
Example #6
0
        private void UpdateSelection()
        {
            bool select = false;

            SimDescription sim = mSelectedSimDesc as SimDescription;

            if (sim != null)
            {
                select = true;

                if ((sim.ChildOrBelow) || (sim.IsPet))
                {
                    select = false;
                }
            }

            mDegreeCombo.Enabled    = select;
            mCourseLoadSldr.Enabled = select;

            EnrollmentDialogRowController controller;
            EnrollmentData enrollmentDataForSim = GetEnrollmentDataForSim(mSelectedSimDesc, out controller);

            if (enrollmentDataForSim != null)
            {
                if (!select)
                {
                    if (enrollmentDataForSim.CourseLoad != 0)
                    {
                        mCourseLoad = 0;

                        int num;
                        int num2;
                        FinancialAidtype aidtype;
                        CreditAwardtype  awardtype;
                        mHouseholdFunds -= enrollmentDataForSim.CostPerSim;
                        mHouseholdFunds -= enrollmentDataForSim.ScholarshipAmountPerSim;
                        enrollmentDataForSim.CostPerSim              = UpdateFunds(enrollmentDataForSim.AcademicDegreeName, mSelectedSimDesc as SimDescription, out num2, out aidtype, out num, out awardtype);
                        enrollmentDataForSim.FinancialAidType        = aidtype;
                        enrollmentDataForSim.ScholarshipAmountPerSim = num2;
                        enrollmentDataForSim.CreditsAwardedPerSim    = num;
                        enrollmentDataForSim.CourseLoad              = mCourseLoad;
                        enrollmentDataForSim.CreditAwardType         = awardtype;
                        controller.mTextControlCost.Color            = (enrollmentDataForSim.CostPerSim < 0) ? RED : BLUE;
                        controller.Cost        = UIUtils.FormatMoney(Math.Abs(enrollmentDataForSim.CostPerSim));
                        controller.Scholarship = enrollmentDataForSim.ScholarshipAmountPerSim;
                        controller.AidType     = enrollmentDataForSim.FinancialAidType;

                        UpdateCreditIconEx(enrollmentDataForSim.CreditsAwardedPerSim, enrollmentDataForSim.CreditAwardType, (AcademicDegreeNames)enrollmentDataForSim.AcademicDegreeName);
                        UpdateDegreeProgressBar(mSelectedSimDesc, enrollmentDataForSim.AcademicDegreeName);
                    }
                }
                else
                {
                    uint index = 0;
                    for (int i = 0; i < mDegreeCombo.ValueList.Count; i++)
                    {
                        AcademicDegreeStaticData data = mDegreeCombo.EntryTags[i] as AcademicDegreeStaticData;
                        if ((ulong)data.AcademicDegreeName == enrollmentDataForSim.AcademicDegreeName)
                        {
                            index = (uint)i;
                            break;
                        }
                    }

                    mDegreeCombo.SelectionChange -= OnDegreeChange;
                    mDegreeCombo.CurrentSelection = index;
                }
            }

            mDegreeCombo.SelectionChange -= OnDegreeChange;
            mDegreeCombo.SelectionChange += OnDegreeChangeEx;
        }
Example #7
0
        // From AcademicDegreeManager:CreateAcademicDegreeTable
        protected override void Perform(BooterHelper.BootFile file, XmlDbRow row)
        {
            AcademicDegreeNames academicDegree = AcademicDegreeNames.Undefined;

            if (!row.TryGetEnum<AcademicDegreeNames>("AcademicDegreeEnum", out academicDegree, AcademicDegreeNames.Undefined))
            {
                academicDegree = unchecked((AcademicDegreeNames)ResourceUtils.HashString64(row.GetString("AcademicDegreeEnum")));
            }

            BooterLogger.AddTrace("AcademicDegreeEnum: " + row.GetString("AcademicDegreeEnum"));

            string degreeNameKey = row.GetString("AcademicDegreeName");
            string degreeDescKey = row.GetString("AcademicDegreeDesc");
            string degreeIcon = row.GetString("AcademicDegreeIcon");
            int degreeCreditHours = row.GetInt("AcademicDegreeRequiredCreditHours");
            float degreeCostPerCredit = row.GetFloat("AcademicDegreeCostPerCredit");
            string degreeResponsibilitiesKey = row.GetString("ResponsibilityTooltipKey");

            JobId academicDefaultCourseID;
            if (!row.TryGetEnum<JobId>("AcademicDefaultCourseID", out academicDefaultCourseID, JobId.AcademicsGenericRabbitHoleCourse))
            {
                // Custom
                academicDefaultCourseID = unchecked((JobId)ResourceUtils.HashString64(row.GetString("AcademicDefaultCourseID")));
            }

            JobId academicDefaultLectureID;
            if (!row.TryGetEnum<JobId>("AcademicDefaultLectureID", out academicDefaultLectureID, JobId.Invalid))
            {
                // Custom
                academicDefaultLectureID = unchecked((JobId)ResourceUtils.HashString64(row.GetString("AcademicDefaultLectureID")));                
            }

            JobId academicDefaultLabID;
            if (!row.TryGetEnum<JobId>("AcademicDefaultLabID", out academicDefaultLabID, JobId.Invalid))
            {
                // Custom
                academicDefaultLabID = unchecked((JobId)ResourceUtils.HashString64(row.GetString("AcademicDefaultLabID")));
            }

            List<OccupationNames> associatedOccupations = new List<OccupationNames>();
            List<string> list2 = row.GetStringList("AssociatedOccupationNameEnum", ',', true);
            for (int i = 0x0; i < list2.Count; i++)
            {
                OccupationNames occupation;
                if (!ParserFunctions.TryParseEnum<OccupationNames>(list2[i], out occupation, OccupationNames.Undefined))
                {
                    occupation = unchecked((OccupationNames)ResourceUtils.HashString64(row.GetString(list2[i])));
                }

                if (occupation != OccupationNames.Undefined)
                {
                    associatedOccupations.Add(occupation);
                }
            }

            OccupationNames grantedOccupation;
            if (!ParserFunctions.TryParseEnum<OccupationNames>("GrantedOccupationNameEnum", out grantedOccupation, OccupationNames.Undefined))
            {
                // Custom
                grantedOccupation = unchecked((OccupationNames)ResourceUtils.HashString64(row.GetString("GrantedOccupationNameEnum")));
            }

            List<TraitNames> beneficialTraits;
            List<TraitNames> detrimentalTraits;
            List<TraitNames> suggestedTraits;
            ParserFunctions.TryParseCommaSeparatedList<TraitNames>(row["BeneficialTraits"], out beneficialTraits, TraitNames.Unknown);
            ParserFunctions.TryParseCommaSeparatedList<TraitNames>(row["DetrimentalTraits"], out detrimentalTraits, TraitNames.Unknown);
            ParserFunctions.TryParseCommaSeparatedList<TraitNames>(row["SuggestedTraits"], out suggestedTraits, TraitNames.Unknown);

            AcademicDegreeStaticData staticData = null;
            if (!AcademicDegreeManager.sDictionary.TryGetValue((ulong)academicDegree, out staticData))
            {
                staticData = new AcademicDegreeStaticData(academicDegree, degreeNameKey, degreeDescKey, degreeResponsibilitiesKey, degreeIcon, degreeCreditHours, degreeCostPerCredit, academicDefaultCourseID, academicDefaultLectureID, academicDefaultLabID, associatedOccupations, grantedOccupation, beneficialTraits, detrimentalTraits, suggestedTraits);
            }
            else
            {
                staticData.BeneficialTraits.AddRange(beneficialTraits);
                staticData.DetrimentalTraits.AddRange(detrimentalTraits);
                staticData.SuggestedTraits.AddRange(suggestedTraits);
                staticData.AssociatedOccupations.AddRange(associatedOccupations);
            }

            string skillsThatGrantXP = row.GetString("SkillsThatGrantXP");
            if (!string.IsNullOrEmpty(skillsThatGrantXP))
            {
                foreach (string str6 in skillsThatGrantXP.Split(new char[] { ';' }))
                {
                    string[] strArray2 = str6.Split(new char[] { ',' });
                    if (strArray2.Length != 0x2) continue;

                    float num4 = ParserFunctions.ParseFloat(strArray2[0x1], -1234123f);
                    if (num4 == -1234123f) continue;

                    // Custom
                    SkillNames skillName = SkillManager.sSkillEnumValues.ParseEnumValue(strArray2[0x0]);
                    if (skillName == SkillNames.None) continue;

                    staticData.AddSkill(skillName, num4);
                }
            }

            AcademicDegreeManager.sDictionary[(ulong)academicDegree] = staticData;
        }
Example #8
0
        protected static int OnSortByName(AcademicDegreeStaticData left, AcademicDegreeStaticData right)
        {
            try
            {
                string leftText = left.DegreeName;
                if (leftText == null) return -1;

                string rightText = right.DegreeName;
                if (rightText == null) return 1;

                return leftText.CompareTo(rightText);
            }
            catch (Exception e)
            {
                Common.Exception("OnSortByName", e);
                return 0;
            }
        }