Beispiel #1
0
            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]);
            }
Beispiel #2
0
            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;
                            }
                        }
                    }
                }
            }
Beispiel #3
0
        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();
                    }
                }
            }
        }