Exemple #1
0
        private void UpdateMapping(Outfit outfit, Model model)
        {
            DefaultOutfits.TryGetValue(outfit, out var defaultOutfit);

            outfit.Modified = !defaultOutfit.ModelId.Equals(model.Id);
            outfit.ModelId.AssignFromOther(model.Id);
        }
Exemple #2
0
        public override async Task Initialize()
        {
            ResetSelected.Enabled = false;
            IoC.Notif.ShowUnknownProgress();

            IoC.Notif.ShowStatus("Loading outfit list...");
            DefaultOutfits = (await OutfitGen.GenerateOutfits(
                                  IoC.Archiver.LoadGameFileAsync)).ToHashSet();

            //some outfits, like undergarments, are never used in game by the player and only create problems if switched
            var ignored = IoC.Get <OutfitConfig>().IgnoredOutfits.ToHashSet();

            Outfits = DefaultOutfits
                      .Where(x => !ignored.Contains(x.Name))
                      .Select(x => x.Clone()).OrderBy(x => x.DisplayName)
                      .ToList().AsReadOnly();

            PopulateOutfitsList();

            await UpdateModelList();

            UpdateAllOutfitsSelection();

            //start loading characters in background
            Async.Run(() => CharacterGen.GetCharacterModels(true)).Forget();
        }
Exemple #3
0
        public override void ApplyChanges(Patch patch)
        {
            var models = OutfitGen.GenerateModelList(IoC.Archiver.LoadGameFile);

            models.AddRange(CharacterGen.GetCharacterModels(true));

            Patcher.CreatePatch(patch, DefaultOutfits.ToList(), Outfits, models);
        }
Exemple #4
0
        protected override Task ResetSelected_Click()
        {
            if (lbOutfits.SelectedIndex < 0)
            {
                return(Task.CompletedTask);
            }

            var selected = GetSelectedOutfits();

            foreach (var outfit in selected)
            {
                if (DefaultOutfits.TryGetValue(outfit, out var defaultOutfit))
                {
                    outfit.Modified = false;
                    outfit.ModelId.AssignFromOther(defaultOutfit.ModelId);
                }
            }

            lbOutfits_SelectionChanged(lbOutfits, null);

            return(Task.CompletedTask);
        }
        private static void ConfigureStatPriorities(DefaultOutfits outfitName, ExtendedOutfit outfit)
        {
            switch (outfitName)
            {
            case DefaultOutfits.Anything:
            case DefaultOutfits.Worker:
            case DefaultOutfits.Nudist:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.BaseWorkerStatPriorities);
                break;

            case DefaultOutfits.Doctor:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.DoctorWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Warden:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.WardenWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Handler:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.HandlingWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Cook:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.CookingWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Hunter:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.HuntingWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Builder:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.ConstructionWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Grower:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.GrowingWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Miner:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.MiningWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Smith:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.SmithingWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Tailor:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.TailoringWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Artist:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.ArtWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Crafter:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.CraftingWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Hauler:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.HaulingWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Cleaner:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.CleaningWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Researcher:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.ResearchWorkTypeStatPriorities);
                break;

            case DefaultOutfits.Brawler:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.BrawlerStatPriorities);
                break;

            case DefaultOutfits.Soldier:
                outfit.SetDefaultStatPriorities(DefaultWorkTypePriorities.SoldierStatPriorities);
                break;

            default:
                throw new ArgumentOutOfRangeException(message: "Unexpected default outfit", null);
            }
        }