public CareerLevelSettings GetSettingsForLevel(string branch, int level, bool create) { if (!mLevelSettings.ContainsKey(branch)) { mLevelSettings.Add(branch, new Dictionary <int, CareerLevelSettings>()); } if (!mLevelSettings[branch].ContainsKey(level)) { if (create) { CareerLevelSettings settings = new CareerLevelSettings(mName, branch, level); CareerLevelSettings cloned = settings.mDefaults.Clone(); cloned.SetDefaults(mName); mLevelSettings[branch].Add(level, cloned); return(cloned); } else { return(null); } } return(mLevelSettings[branch][level]); }
public void SetDefaults(OccupationNames name) { Career career = CareerManager.GetStaticCareer(name); if (career != null) { foreach (string branch in career.CareerLevels.Keys) { if (branch != mBranch) { continue; } foreach (KeyValuePair <int, CareerLevel> level in career.CareerLevels[branch]) { if (level.Key == mLevel) { CareerLevelSettings settings = new CareerLevelSettings(); settings.mBranch = mBranch; settings.mLevel = mLevel; settings.mPayPerHourBase = level.Value.PayPerHourBase; settings.mCarpoolType = level.Value.CarpoolType; mDefaults = settings; } } } } }
public void SetCareerData(CareerSettings settings) { if (settings != null) { if (settings.mName == OccupationNames.Any) { foreach (Career career in CareerManager.CareerList) { career.SharedData.MinCoworkers = settings.mMinCoworkers; career.SharedData.MaxCoworkers = settings.mMaxCoworkers; } } else { Career career = CareerManager.GetStaticCareer(settings.mName); if (career != null) { career.SharedData.MinCoworkers = settings.mMinCoworkers; career.SharedData.MaxCoworkers = settings.mMaxCoworkers; foreach (string branch in career.CareerLevels.Keys) { foreach (KeyValuePair <int, Sims3.Gameplay.Careers.CareerLevel> levelData in career.CareerLevels[branch]) { CareerLevelSettings levelSettings = settings.GetSettingsForLevel(branch, levelData.Key, false); if (levelSettings != null) { levelData.Value.PayPerHourBase = levelSettings.mPayPerHourBase; levelData.Value.CarpoolType = levelSettings.mCarpoolType; } } } } } foreach (Sim sim in LotManager.Actors) { if (sim.Occupation != null) { sim.Occupation.RescheduleCarpool(); } } } }