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