コード例 #1
0
        private void button3_Click(object sender, EventArgs e)
        {
            if (SaveName.Text == "")
            {
                MessageBox.Show("Enter Name");
                SaveName.Select();
                return;
            }
            MethodPropertyDH.DeletePropertySet(SaveName.Text);
            comboBox1.Items.Clear();
            IEnumerable <string> loadProperty =
                from element in MethodPropertyDH.PropertySetList
                where element.Value.MethodName == comboBoxMethod.SelectedItem.ToString()
                select element.Key;

            foreach (string name in loadProperty)
            {
                comboBox1.Items.Add(name);
            }
            if (comboBox1.Items.Count > 0)
            {
                comboBox1.SelectedIndex = 0;
            }
            else
            {
                comboBox1.Text = "";
            }
        }
コード例 #2
0
 public SaveWindow()
 {
     InitializeComponent();
     EnterToSave.Content = "Press Enter to save";
     SaveName.Focus();
     CenterWindowOnScreen();
 }
コード例 #3
0
ファイル: UserSettings.xaml.cs プロジェクト: Vkuparin/EU4ISM
 public UserSettings()
 {
     InitializeComponent();
     SaveFolderName.Text = MainWindow.ReadSetting("savefolder");
     SaveName.Text       = MainWindow.ReadSetting("savename");
     CenterWindowOnScreen();
     SaveName.Focus();
 }
コード例 #4
0
    public void NewSaveGame()
    {
        SaveName saveName = new SaveName(player, DateTime.Now);

        newSavePath = SaveFolder.FullName + saveName.CleanSave + ".json";
        File.WriteAllText(newSavePath, NewSave.SaveData());
        SavedEvent?.Invoke();
        lastSavePath = newSavePath;
    }
コード例 #5
0
        int ICompareTo(EbookSplited other)
        {
            int compareTo = !Equals(other, default) ? 0 : -1;

            if (compareTo == 0)
            {
                compareTo = SaveName.CompareTo(other.SaveName);
            }
            return(compareTo);
        }
コード例 #6
0
        public SaveNameDialog(Color Color)
        {
            InitializeComponent( );

            SaveName.Text = Color.ToString( );
            SaveName.SelectAll( );
            SaveName.Focus( );

            SelectedColor.Background = new SolidColorBrush(Color);
        }
コード例 #7
0
ファイル: DownLoad.cs プロジェクト: kiichi54321/Rawler
        /// <summary>
        /// このクラスでの実行すること。
        /// </summary>
        /// <param name="runChildren"></param>
        public override void Run(bool runChildren)
        {
            if (Folder == null)
            {
                ReportManage.ErrEmptyPropertyName(this, nameof(Folder));
                return;
            }
            Folder.Parent = this;
            var client = this.GetAncestorRawler().OfType <WebClient>().DefaultIfEmpty(new WebClient()).FirstOrDefault();

            string url = Url;

            if (string.IsNullOrEmpty(url))
            {
                url = GetText();
            }
            var    page    = this.GetUpperRawler <Page>();
            string referer = string.Empty;

            if (page != null)
            {
                referer = page.GetCurrentUrl();
            }

            var data = client.HttpGetByte(url, referer);

            data.Wait();
            string fileName = string.Empty;

            if (string.IsNullOrEmpty(SaveName) == false)
            {
                fileName = SaveName.Convert(this);
            }
            else
            {
                fileName = System.IO.Path.GetFileNameWithoutExtension(url);
            }
            string ex = System.IO.Path.GetExtension(url);

            if (ex.Split('?').Length > 0)
            {
                ex = ex.Split('?').First();
            }

            Folder?.WriteFile(fileName + ex, data.Result);

            SetText(fileName + ex);

            base.Run(runChildren);
        }
コード例 #8
0
        private void ShowPrintWindow()
        {
            PrintDialog printDialog = new PrintDialog();

            if (printDialog.ShowDialog() == false)
            {
                return;
            }

            string documentTitle = "Test Document";
            Size   pageSize      = new Size(printDialog.PrintableAreaWidth, printDialog.PrintableAreaHeight);

            SaveName printTitle = new SaveName();

            printTitle.ShowDialog();
            if (printTitle.DialogResult == true)
            {
                documentTitle = printTitle.title;
            }
            else
            {
                return;
            }

            CustomDataGridDocumentPaginator paginator = new CustomDataGridDocumentPaginator(pianoSongsDataGrid as DataGrid, documentTitle, pageSize, new Thickness(30, 20, 30, 20));
            Style titleStyle = new Style();

            titleStyle.Setters.Add(new Setter(TextBox.FontSizeProperty, 20.0));
            titleStyle.Setters.Add(new Setter(TextBox.FontWeightProperty, FontWeights.Bold));
            Style headerStyle = new Style();

            headerStyle.Setters.Add(new Setter(TextBox.FontWeightProperty, FontWeights.Bold));
            paginator.DocumentHeaderTextStyle = titleStyle;
            paginator.TableHeaderTextStyle    = headerStyle;
            printDialog.PrintDocument(paginator, "Grid");
        }
コード例 #9
0
        public override void Execute()
        {
            RetCode rc;

            Globals.RevealContentCounter--;

            SaveFilesetsCount = Globals.Database.GetFilesetsCount();

            Debug.Assert(SaveFilesetsCount <= gEngine.NumSaveSlots);

            Debug.Assert(SaveSlot >= 1 && SaveSlot <= Math.Min(SaveFilesetsCount + 1, gEngine.NumSaveSlots));

            Debug.Assert(SaveName != null);

            if (SaveSlot == SaveFilesetsCount + 1)
            {
                SaveFileset = Globals.CreateInstance <IFileset>(x =>
                {
                    x.Uid  = Globals.Database.GetFilesetUid();
                    x.Name = "(none)";
                });

                rc = Globals.Database.AddFileset(SaveFileset);

                Debug.Assert(gEngine.IsSuccess(rc));
            }

            SaveFilesetList = Globals.Database.FilesetTable.Records.OrderBy(f => f.Uid).ToList();

            SaveFileset = SaveFilesetList[(int)SaveSlot - 1];

            if (SaveName.Length == 0)
            {
                if (!SaveFileset.Name.Equals("(none)", StringComparison.OrdinalIgnoreCase))
                {
                    gOut.Write("{0}Change name of save (Y/N): ", Environment.NewLine);

                    Globals.Buf.Clear();

                    rc = Globals.In.ReadField(Globals.Buf, Constants.BufSize02, null, ' ', '\0', false, null, gEngine.ModifyCharToUpper, gEngine.IsCharYOrN, null);

                    Debug.Assert(gEngine.IsSuccess(rc));

                    if (Globals.Buf.Length > 0 && Globals.Buf[0] == 'Y')
                    {
                        SaveFileset.Name = "(none)";
                    }
                }

                while (SaveFileset.Name.Equals("(none)", StringComparison.OrdinalIgnoreCase))
                {
                    gOut.Write("{0}Enter new name: ", Environment.NewLine);

                    Globals.Buf.Clear();

                    rc = Globals.In.ReadField(Globals.Buf, Constants.FsNameLen, null, ' ', '\0', false, null, null, null, null);

                    Debug.Assert(gEngine.IsSuccess(rc));

                    Globals.Buf.SetFormat("{0}", Regex.Replace(Globals.Buf.ToString(), @"\s+", " ").Trim());

                    SaveFileset.Name = gEngine.Capitalize(Globals.Buf.ToString());

                    if (SaveFileset.Name.Length == 0)
                    {
                        SaveFileset.Name = "(none)";
                    }
                }
            }
            else
            {
                if (!SaveFileset.Name.Equals("(none)", StringComparison.OrdinalIgnoreCase) && SaveName.Equals("Quick Saved Game", StringComparison.OrdinalIgnoreCase))
                {
                    SaveName = Globals.CloneInstance(SaveFileset.Name);
                }

                SaveName = gEngine.Capitalize(SaveName);

                SaveFileset.Name = Globals.CloneInstance(SaveName);

                gOut.Print("[QUICK SAVE {0}: {1}]", SaveSlot, SaveName);
            }

            SaveConfig = Globals.CreateInstance <IConfig>();

            SaveSlotString = SaveSlot.ToString("D3");

            SaveFileset.WorkDir = "NONE";

            SaveFileset.PluginFileName = "NONE";

            SaveFilePath = "";

            SaveFileName = "";

            SaveFileExtension = "";

            rc = gEngine.SplitPath(Globals.ConfigFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

            Debug.Assert(gEngine.IsSuccess(rc));

            SaveFileNameIndex = SaveFileName.IndexOf('_');

            if (SaveFileNameIndex >= 0)
            {
                SaveFileName = SaveFileName.Substring(0, (int)SaveFileNameIndex);
            }

            Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

            SaveFileset.ConfigFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);

            SaveFileset.FilesetFileName = "NONE";

            rc = gEngine.SplitPath(Globals.Config.RtCharacterFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

            Debug.Assert(gEngine.IsSuccess(rc));

            Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

            SaveFileset.CharacterFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);

            rc = gEngine.SplitPath(Globals.Config.RtModuleFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

            Debug.Assert(gEngine.IsSuccess(rc));

            Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

            SaveFileset.ModuleFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);

            rc = gEngine.SplitPath(Globals.Config.RtRoomFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

            Debug.Assert(gEngine.IsSuccess(rc));

            Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

            SaveFileset.RoomFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);

            rc = gEngine.SplitPath(Globals.Config.RtArtifactFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

            Debug.Assert(gEngine.IsSuccess(rc));

            Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

            SaveFileset.ArtifactFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);

            rc = gEngine.SplitPath(Globals.Config.RtEffectFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

            Debug.Assert(gEngine.IsSuccess(rc));

            Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

            SaveFileset.EffectFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);

            rc = gEngine.SplitPath(Globals.Config.RtMonsterFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

            Debug.Assert(gEngine.IsSuccess(rc));

            Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

            SaveFileset.MonsterFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);

            rc = gEngine.SplitPath(Globals.Config.RtHintFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

            Debug.Assert(gEngine.IsSuccess(rc));

            Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

            SaveFileset.HintFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);

            if (!string.IsNullOrWhiteSpace(Globals.Config.RtTriggerFileName))                      // TODO: remove this check at some point
            {
                rc = gEngine.SplitPath(Globals.Config.RtTriggerFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

                Debug.Assert(gEngine.IsSuccess(rc));

                Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

                SaveFileset.TriggerFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);
            }

            if (!string.IsNullOrWhiteSpace(Globals.Config.RtScriptFileName))                      // TODO: remove this check at some point
            {
                rc = gEngine.SplitPath(Globals.Config.RtScriptFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

                Debug.Assert(gEngine.IsSuccess(rc));

                Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

                SaveFileset.ScriptFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);
            }

            rc = gEngine.SplitPath(Globals.Config.RtGameStateFileName, ref _saveFilePath, ref _saveFileName, ref _saveFileExtension);

            Debug.Assert(gEngine.IsSuccess(rc));

            Globals.Buf.SetFormat("{0}{1}_{2}{3}", SaveFilePath, SaveFileName, SaveSlotString, SaveFileExtension);

            SaveFileset.GameStateFileName = Globals.Buf.ToString().Truncate(Constants.FsFileNameLen);

            SaveConfig.RtFilesetFileName = Globals.CloneInstance(Globals.Config.RtFilesetFileName);

            SaveConfig.RtCharacterFileName = Globals.CloneInstance(SaveFileset.CharacterFileName);

            SaveConfig.RtModuleFileName = Globals.CloneInstance(SaveFileset.ModuleFileName);

            SaveConfig.RtRoomFileName = Globals.CloneInstance(SaveFileset.RoomFileName);

            SaveConfig.RtArtifactFileName = Globals.CloneInstance(SaveFileset.ArtifactFileName);

            SaveConfig.RtEffectFileName = Globals.CloneInstance(SaveFileset.EffectFileName);

            SaveConfig.RtMonsterFileName = Globals.CloneInstance(SaveFileset.MonsterFileName);

            SaveConfig.RtHintFileName = Globals.CloneInstance(SaveFileset.HintFileName);

            SaveConfig.RtTriggerFileName = Globals.CloneInstance(SaveFileset.TriggerFileName);

            SaveConfig.RtScriptFileName = Globals.CloneInstance(SaveFileset.ScriptFileName);

            SaveConfig.RtGameStateFileName = Globals.CloneInstance(SaveFileset.GameStateFileName);

            Globals.Config.DdFilesetFileName = SaveConfig.RtFilesetFileName;

            Globals.Config.DdCharacterFileName = SaveConfig.RtCharacterFileName;

            Globals.Config.DdModuleFileName = SaveConfig.RtModuleFileName;

            Globals.Config.DdRoomFileName = SaveConfig.RtRoomFileName;

            Globals.Config.DdArtifactFileName = SaveConfig.RtArtifactFileName;

            Globals.Config.DdEffectFileName = SaveConfig.RtEffectFileName;

            Globals.Config.DdMonsterFileName = SaveConfig.RtMonsterFileName;

            Globals.Config.DdHintFileName = SaveConfig.RtHintFileName;

            Globals.Config.DdTriggerFileName = SaveConfig.RtTriggerFileName;

            Globals.Config.DdScriptFileName = SaveConfig.RtScriptFileName;

            Globals.Config.DdEditingFilesets = true;

            Globals.Config.DdEditingCharacters = true;

            Globals.Config.DdEditingModules = true;

            Globals.Config.DdEditingRooms = true;

            Globals.Config.DdEditingArtifacts = true;

            Globals.Config.DdEditingEffects = true;

            Globals.Config.DdEditingMonsters = true;

            Globals.Config.DdEditingHints = true;

            Globals.Config.DdEditingTriggers = true;

            Globals.Config.DdEditingScripts = true;

            FullArtifactList = Globals.Database.ArtifactTable.Records.ToList();

            foreach (var artifact in FullArtifactList)
            {
                if (artifact.IsCarriedByCharacter())
                {
                    artifact.SetCarriedByMonsterUid(gGameState.Cm);
                }
                else if (artifact.IsWornByCharacter())
                {
                    artifact.SetWornByMonsterUid(gGameState.Cm);
                }
            }

            GameSaved = true;

            rc = SaveConfig.SaveGameDatabase(false);

            if (gEngine.IsFailure(rc))
            {
                Globals.Error.WriteLine("Error: SaveGameDatabase function call failed");

                GameSaved = false;
            }

            foreach (var artifact in FullArtifactList)
            {
                if (artifact.IsCarriedByMonsterUid(gGameState.Cm))
                {
                    artifact.SetCarriedByCharacter();
                }
                else if (artifact.IsWornByMonsterUid(gGameState.Cm))
                {
                    artifact.SetWornByCharacter();
                }
            }

            rc = Globals.Database.SaveConfigs(SaveFileset.ConfigFileName, false);

            if (gEngine.IsFailure(rc))
            {
                Globals.Error.WriteLine("Error: SaveConfigs function call failed");

                GameSaved = false;
            }

            SaveConfig.Dispose();

            gOut.Print(GameSaved ? "Game saved." : "Game not saved.");

            if (NextState == null)
            {
                NextState = Globals.CreateInstance <IStartState>();
            }

            Globals.RevealContentCounter++;
        }
コード例 #10
0
        /// <summary>
        /// このクラスでの実行すること。
        /// </summary>
        /// <param name="runChildren"></param>
        public override void Run(bool runChildren)
        {
            var client = this.GetAncestorRawler().OfType <WebClient>().DefaultIfEmpty(new WebClient()).FirstOrDefault();

            string url = Url;

            if (string.IsNullOrEmpty(url))
            {
                url = GetText();
            }
            var page = this.GetUpperRawler <Page>();

            if (page != null)
            {
                client.Referer = page.GetCurrentUrl();
            }

            var    data = client.HttpGetByte(url);
            string path = string.Empty;

            if (FolderNameTree != null)
            {
                path = RawlerBase.GetText(this.Parent.Text, FolderNameTree, this.Parent);
            }
            else
            {
                path = Folder.Convert(this);
            }
            if (path != null)
            {
                if (System.IO.Path.IsPathRooted(path) == false)
                {
                    path = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), path);
                }

                if (System.IO.Directory.Exists(path) == false)
                {
                    try
                    {
                        System.IO.Directory.CreateDirectory(path);
                    }
                    catch (Exception e)
                    {
                        ReportManage.ErrReport(this, "ディレクトリーの作成に失敗しました" + e.Message);
                    }
                }
            }
            else
            {
                path = System.IO.Directory.GetCurrentDirectory();
            }
            string ex = System.IO.Path.GetExtension(url);

            if (ex.Split('?').Length > 0)
            {
                ex = ex.Split('?').First();
            }
            string fileName = string.Empty;

            if (SaveNameTree != null)
            {
                fileName = RawlerBase.GetText(this.Parent.Text, SaveNameTree, this.Parent);
            }
            else if (string.IsNullOrEmpty(SaveName) == false)
            {
                fileName = SaveName.Convert(this);
            }
            else
            {
                fileName = System.IO.Path.GetFileNameWithoutExtension(url);
            }
            path = System.IO.Path.Combine(path, fileName + ex);

            try
            {
                using (var writer = System.IO.File.Create(path))
                {
                    writer.Write(data, 0, data.Length);
                    SetText(path);
                }
            }
            catch (Exception e)
            {
                ReportManage.ErrReport(this, "ファイルの保存に失敗しました" + e.Message + " Path:" + path);
            }
            SetText(fileName + ex);

            base.Run(runChildren);
        }
コード例 #11
0
        static void Main()
        {
            Random random   = new Random();
            bool   endSteps = false;

            Step[] stepOrder = new Step[]
            {
                Step.NPCorMonster,
                Step.Level,
                Step.Traits,
                Step.Size,
                Step.Hit_Points,
                Step.Resistances_Weaknesses,
                Step.Skills,
                Step.Armor_Class,
                Step.Strike_Attack_Bonus,
                Step.Strike_Damage,
                Step.Ability_Scores,
                Step.Perception,
                Step.Saves,
                Step.Spells,
                Step.Spell_DC_And_Attack_Bonus,
                Step.Area_Damage,
                Step.Gear,
                Step.End,
                Step.SaveToFile
            };

            int partyLevel = Program.GetMinMaxInt("Please enter the party's current level: ", MinMax.hasBoth, 1, 20);

            for (int step = 0; endSteps == false; step++)
            {
                if (step >= 0 && step < stepOrder.Length)
                {
                    Console.WriteLine("Step: " + stepOrder[step]);
                }

                if (step > 0)
                {
                    step = ContinueOrBack(stepOrder, step);
                }

                if (_creatureSaves.ContainsKey(stepOrder[step]))
                {
                    _creatureSaves.Remove(stepOrder[step]);
                }
                _creatureSaves.Add(stepOrder[step], CopyCreature(_creature));

                switch (stepOrder[step])
                {
                case Step.NPCorMonster:
                {
                    Console.WriteLine("Enter NPC or Monster to select a creature type, or press Enter to randomly select");
                    string userInput = GetValidString("NPC", "Monster", "");
                    switch (userInput.ToUpper())
                    {
                    case "NPC":
                        _creature.Type = CreatureType.NPC;
                        break;

                    case "Monster":
                        _creature.Type = CreatureType.Monster;
                        break;

                    case "":
                        _creature.Type = CreatureType.Any;
                        break;
                    }
                    break;
                }

                case Step.Level:
                {
                    ExecuteStep.LevelStep(random, _creature, partyLevel);
                    break;
                }

                case Step.Traits:
                {
                    string userInput = "";
                    do
                    {
                        ExecuteStep.TraitsStep(_creature, random);
                        Console.WriteLine("Press enter to continue or ADD to add another trait");
                        userInput = GetValidString("", "ADD");
                    } while (userInput.ToUpper() == "ADD");
                    break;
                }

                case Step.Size:
                {
                    ExecuteStep.SizeStep(_creature, random);
                    break;
                }

                case Step.Hit_Points:
                {
                    ExecuteStep.HitPointStep(_creature, random);
                    break;
                }

                case Step.Resistances_Weaknesses:
                {
                    Console.WriteLine("Press Enter to continue or NO to skip this step");
                    string userInput = GetValidString("", "NO");
                    if (userInput.ToUpper() != "NO")
                    {
                        ExecuteStep.ResistanceWeaknessStep(_creature, random);
                    }
                    break;
                }

                case Step.Skills:
                {
                    do
                    {
                        List <Degree> savedDegrees = CopyDegreeList(_creature.DegreeList);
                        ExecuteStep.SkillStep(_creature, random);
                        Console.WriteLine("Press ENTER to continue or BACK to erase previous skill");
                        string userInput = GetValidString("", "BACK");
                        if (userInput.ToUpper() == "BACK")
                        {
                            int latestSkillIndex = _creature.SkillPool.SelectedSkills.Count() - 1;
                            _creature.SkillPool.PossibleSkills.Add(_creature.SkillPool.SelectedSkills[latestSkillIndex].skillName);
                            _creature.SkillPool.PossibleSkills.Sort();
                            _creature.SkillPool.SelectedSkills.RemoveAt(latestSkillIndex);
                            _creature.DegreeList = CopyDegreeList(savedDegrees);
                        }
                    } while (_creature.SkillPool.SelectedSkills.Count < 6);
                    break;
                }

                case Step.Armor_Class:
                {
                    ExecuteStep.ArmorClassStep(_creature, random);
                    break;
                }

                case Step.Strike_Attack_Bonus:
                {
                    ExecuteStep.StrikeAttackStep(_creature, random);
                    break;
                }

                case Step.Strike_Damage:
                {
                    ExecuteStep.StrikeDamageStep(_creature, random);
                    break;
                }

                case Step.Ability_Scores:
                {
                    AbilityScoreEnum[] abilities = new AbilityScoreEnum[] { AbilityScoreEnum.Strength, AbilityScoreEnum.Dexterity, AbilityScoreEnum.Intelligence, AbilityScoreEnum.Wisdom, AbilityScoreEnum.Charisma };
                    foreach (AbilityScoreEnum ability in abilities)
                    {
                        string userInput = "";
                        do
                        {
                            List <Degree> saveDegrees = CopyDegreeList(_creature.DegreeList);
                            ExecuteStep.AbilityScoreStep(_creature, random, ability);
                            Console.WriteLine("Press ENTER to continue or BACK to redo the {0} score", ability);
                            userInput = GetValidString("", "BACK");
                            if (userInput.ToUpper() == "BACK")
                            {
                                _creature.DegreeList = CopyDegreeList(saveDegrees);
                            }
                        } while (userInput.ToUpper() == "BACK");
                    }
                    break;
                }

                case Step.Perception:
                {
                    ExecuteStep.PerceptionStep(_creature, random);
                    break;
                }

                case Step.Saves:
                {
                    SaveName[] saves = new SaveName[] { SaveName.Fortitude, SaveName.Reflex, SaveName.Will };
                    foreach (SaveName save in saves)
                    {
                        ExecuteStep.SavesStep(_creature, random, save);
                    }
                    break;
                }

                case Step.Spells:
                {
                    string[] spellTypes = new string[] { "Arcane", "Occult", "Primal", "Divine", "Focus", "NONE" };
                    Console.WriteLine("Press Enter to randomly select this creature's magic type or one of the following types:");
                    foreach (string type in spellTypes)
                    {
                        Console.WriteLine(type);
                    }
                    string[] validInputs = new string[spellTypes.Length + 1];
                    for (int i = 0; i < validInputs.Length; i++)
                    {
                        if (i == 0)

                        {
                            validInputs[i] = "";
                        }
                        else
                        {
                            validInputs[i] = spellTypes[i - 1];
                        }
                    }
                    string typeInput = GetValidString(validInputs);
                    if (typeInput == "")
                    {
                        if (random.Next(2) == 1)
                        {
                            typeInput = spellTypes[random.Next(spellTypes.Length)];
                        }
                        else
                        {
                            _creature.HasSpells = false;
                        }
                    }
                    if (typeInput.ToUpper() == "NONE")
                    {
                        _creature.HasSpells = false;
                    }
                    if (_creature.HasSpells)
                    {
                        ExecuteStep.SpellsStep(_creature, random, CapitalizeString(typeInput));
                    }
                    break;
                }

                case Step.Spell_DC_And_Attack_Bonus:
                {
                    if (!_creature.Spells.Any())
                    {
                        Console.WriteLine("No spells detected. Skipping step");
                    }
                    else
                    {
                        ExecuteStep.SpellStatsStep(_creature, random);
                    }
                    break;
                }

                case Step.Area_Damage:
                {
                    ExecuteStep.AreaDamageStep(_creature);
                    break;
                }

                case Step.Gear:
                {
                    Console.WriteLine("Press Enter to randomly determine if creature has gear or Y\\N:");
                    string userInput = GetValidString("", "Y", "N");
                    if (userInput == "" && random.Next(2) == 1)
                    {
                        userInput = "Y";
                    }
                    if (userInput.ToUpper() == "Y")
                    {
                        ExecuteStep.GearStep(_creature, random);
                    }
                    break;
                }

                case Step.End:
                {
                    ExecuteStep.EndStep(_creature);
                    break;
                }

                case Step.SaveToFile:
                {
                    Console.WriteLine("Would you like to save this creature? Y/N");
                    string saveOrNot = GetValidString("Y", "N");
                    if (saveOrNot.ToUpper() == "Y")
                    {
                        ExecuteStep.SaveToFileStep(_creature);
                    }
                    endSteps = true;
                    break;
                }

                default:
                {
                    Console.WriteLine("Step incomplete");
                    //endSteps = true;
                    break;
                }
                }
            }
        }
コード例 #12
0
 public ViewSetSaveAsView()
 {
     InitializeComponent();
     SaveName.Focus();
 }