protected ListenerAction OnHired(Event e) { SimDescription sim = null; CareerEvent cEvent = e as CareerEvent; if ((cEvent != null) && (cEvent.Career != null)) { sim = cEvent.Career.OwnerDescription; } if (sim == null) { return(ListenerAction.Keep); } if ((sim != mSuspendedSim) && ((TargetObject == null) || ((TargetObject as Sim).SimDescription != sim))) { return(ListenerAction.Keep); } if ((Actor.Occupation == null) || (sim.Occupation == null) || (Actor.Occupation.Guid != sim.Occupation.Guid)) { return(ListenerAction.Keep); } mRecruited = true; return(ListenerAction.Remove); }
protected static void OnHired(Event e) { CareerEvent cEvent = e as CareerEvent; if (cEvent == null) { return; } if (cEvent.Career is AcademicCareer) { if (!GameUtils.IsUniversityWorld()) { if (AcademicCareer.GlobalTermLength == AcademicCareer.TermLength.kInvalid) { AcademicCareer.GlobalTermLength = AcademicCareer.TermLength.kOneWeek; } AddAcademic(cEvent.Career.OwnerDescription, AcademicCareer.GlobalTermLength); } } else //if (cEvent.Career is XpBasedCareer) { if (cEvent.Career.CareerLevel == 1) { SimDescription sim = cEvent.Career.OwnerDescription; if (sim == null) { return; } AcademicDegreeManager degreeManager = sim.CareerManager.DegreeManager; if (degreeManager == null) { return; } int level = CalculateBoostedStartingLevel(cEvent.Career); for (int i = 0; i < level; i++) { cEvent.Career.PromoteSim(); } } } }