Пример #1
0
        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            TabPage tab = TabControls.SelectedTab;

            if (tab == racesTab)
            {
                Program.Context.ImportRaces();
                foreach (Race r in Program.Context.Races.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                }
                Program.Context.ImportSubRaces();
                foreach (SubRace r in Program.Context.SubRaces.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                }
                fill(racesList, Program.Context.Races.Keys, null);
                fill(subRaceList, Program.Context.SubRaces.Keys, null);
            }
            else if (tab == featuresTab)
            {
                Program.Context.ImportStandaloneFeatures();
                foreach (List <FeatureContainer> rr in Program.Context.FeatureContainers.Values)
                {
                    foreach (FeatureContainer r in rr)
                    {
                        CheckFeatures(r.Features, r.category + ":" + r.Name, r.Source);
                    }
                }
                FeatCats.Items.Clear();
                FeatCats.Items.Add("Feats");
                foreach (string s in ImportExtensions.EnumerateCategories(Program.Context, Program.Context.Config.Features_Directory))
                {
                    FeatCats.Items.Add(s);
                }
            }
            else if (tab == classesTab)
            {
                Program.Context.ImportClasses();
                foreach (ClassDefinition r in Program.Context.Classes.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                    CheckFeatures(r.MulticlassingFeatures, r.Name, r.Source);
                    CheckFeatures(r.FirstClassFeatures, r.Name, r.Source);
                }
                fill(classList, Program.Context.Classes.Keys, null);
                Program.Context.ImportSubClasses();
                foreach (SubClass r in Program.Context.SubClasses.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                    CheckFeatures(r.MulticlassingFeatures, r.Name, r.Source);
                    CheckFeatures(r.FirstClassFeatures, r.Name, r.Source);
                }
                fill(subclassList, Program.Context.SubClasses.Keys, null);
            }
            else if (tab == langTab)
            {
                Program.Context.ImportLanguages();
                fill(langBox, Program.Context.Languages.Keys, null);
            }
            else if (tab == backTab)
            {
                Program.Context.ImportBackgrounds();
                foreach (Background r in Program.Context.Backgrounds.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                }
                fill(backBox, Program.Context.Backgrounds.Keys, null);
            }
            else if (tab == itemTab)
            {
                Program.Context.ImportItems();
                ItemCat.Items.Clear();
                ItemCat.Items.Add("Items");
                foreach (string s in ImportExtensions.EnumerateCategories(Program.Context, Program.Context.Config.Items_Directory))
                {
                    ItemCat.Items.Add(s);
                }
            }
            else if (tab == skillsTab)
            {
                Program.Context.ImportSkills();
                fill(skillList, Program.Context.Skills.Keys, null);
            }
            else if (tab == conditionsTab)
            {
                Program.Context.ImportConditions();
                fill(condList, Program.Context.Conditions.Keys, null);
            }
            else if (tab == monsterTab)
            {
                Program.Context.ImportMonsters();
                fill(monsterbox, Program.Context.Monsters.Keys, null);
            }
            else if (tab == levelTab)
            {
                Level c = Program.Context.LoadLevel(Program.Context.Config.Levels);
                LevelXP.Items          = c.Experience;
                LevelProficiency.Items = c.Proficiency;
            }
            else if (tab == arraysTab)
            {
                AbilityScores ab = Program.Context.LoadAbilityScores(Program.Context.Config.AbilityScores);
                PointBuyPoints.DataBindings.Clear();
                PointBuyPoints.DataBindings.Add("Value", ab, "PointBuyPoints", true, DataSourceUpdateMode.OnPropertyChanged);
                PointBuyMin.DataBindings.Clear();
                PointBuyMin.DataBindings.Add("Value", ab, "PointBuyMinScore", true, DataSourceUpdateMode.OnPropertyChanged);
                PointBuyMax.DataBindings.Clear();
                PointBuyMax.DataBindings.Add("Value", ab, "PointBuyMaxScore", true, DataSourceUpdateMode.OnPropertyChanged);
                MaxScore.DataBindings.Clear();
                MaxScore.DataBindings.Add("Value", ab, "DefaultMax", true, DataSourceUpdateMode.OnPropertyChanged);
                PointBuyList.DataBindings.Clear();
                PointBuyList.DataBindings.Add("Start", ab, "PointBuyMinScore", true, DataSourceUpdateMode.OnPropertyChanged);
                PointBuyList.Items = ab.PointBuyCost;
                Arrays.Items       = ab.Arrays;
            }
            else if (tab == spellsTab)
            {
                Program.Context.ImportSpells();
                fill(spellBox, Program.Context.Spells.Keys, null);
            }
            else if (tab == magicTab)
            {
                Program.Context.ImportMagic();
                foreach (MagicProperty r in Program.Context.Magic.Values)
                {
                    CheckFeatures(r.AttunedEquipFeatures, r.Name, r.Source);
                    CheckFeatures(r.AttunedOnUseFeatures, r.Name, r.Source);
                    CheckFeatures(r.AttunementFeatures, r.Name, r.Source);
                    CheckFeatures(r.CarryFeatures, r.Name, r.Source);
                    CheckFeatures(r.EquipFeatures, r.Name, r.Source);
                    CheckFeatures(r.OnUseFeatures, r.Name, r.Source);
                }
                magicCatBox.Items.Clear();
                magicCatBox.Items.Add("Magic");
                foreach (string s in ImportExtensions.EnumerateCategories(Program.Context, Program.Context.Config.Magic_Directory))
                {
                    magicCatBox.Items.Add(s);
                }
            }
            else if (tab == settingsTab)
            {
                DefaultSource.AutoCompleteCustomSource.Clear();
                DefaultSource.AutoCompleteCustomSource.AddRange(SourceManager.Sources.ToArray());
            }
        }