Пример #1
0
        // Add Monsters
        // Scale them to meet Character Strength...
        public void AddMonstersToRound()
        {
            // Check to see if the monster list is full, if so, no need to add more...
            if (MonsterList.Count() >= GameGlobals.MaxNumberPartyPlayers)
            {
                return;
            }

            // Make Sure Monster List exists and is loaded...
            var myMonsterViewModel = MonstersViewModel.Instance;

            if (myMonsterViewModel.Dataset.Count() > 0)
            {
                // Scale monsters to be within the range of the Characters

                var ScaleLevelMax     = 1;
                var ScaleLevelMin     = 1;
                var ScaleLevelAverage = 1;

                if (CharacterList.Any())
                {
                    ScaleLevelMax     = GetMaxCharacterLevel();
                    ScaleLevelMin     = GetMinCharacterLevel();
                    ScaleLevelAverage = GetAverageCharacterLevel();
                }

                // Get 1 monsters
                do
                {
                    //Force Random Roll here. Important for the debug override setting.
                    //Game will not work without a random value here
                    var rnd = HelperEngine.RollDice(1, myMonsterViewModel.Dataset.Count, true);
                    {
                        var monster = new Monster(myMonsterViewModel.Dataset[rnd - 1]);

                        // Help identify which monster it is...
                        monster.Name += " " + (1 + MonsterList.Count()).ToString();

                        // Scale the monster to be between the average level of the characters+1
                        var rndScale = HelperEngine.RollDice(1, ScaleLevelAverage + 1);
                        monster.ScaleLevel(rndScale);
                        MonsterList.Add(monster);
                    }
                } while (MonsterList.Count() < 1);
            }
            else
            {
                // No monsters in DB, so add 1 new ones...
                for (var i = 0; i < 1; i++)
                {
                    var item = new Monster();
                    // Help identify which monster it is...
                    item.Name += " " + MonsterList.Count() + 1;
                    MonsterList.Add(item);
                }
            }
        }
Пример #2
0
        private void FileIsSelected(object sender, SelectionChangedEventArgs e)
        {
            var add = e.AddedItems.OfType <string>();

            if (!add.Any())
            {
                return;
            }


            var file = TextFile.Load(add.Last());

            Content.Document        = file.Document;
            CharacterList           = file.Characters?.OrderByDescending(GetOrderNumber).Take(5) ?? Enumerable.Empty <Character>();
            Tags                    = file.Tags ?? Enumerable.Empty <string>();
            Showtags                = Tags.Any() ? Visibility.Visible : Visibility.Collapsed;
            CharacterlistVisibility = CharacterList.Any() ? Visibility.Visible : Visibility.Collapsed;
        }
Пример #3
0
        // Add Monsters
        // Scale them to meet Character Strength...
        public void AddMonstersToRound()
        {
            // Check to see if the monster list is full, if so, no need to add more...
            if (MonsterList.Count() >= GameGlobals.MaxNumberPartyPlayers)
            {
                return;
            }

            // Make Sure Monster List exists and is loaded...
            var myMonsterViewModel = MonstersViewModel.Instance;

            if (myMonsterViewModel.Dataset.Count() > 0)
            {
                // Scale monsters to be within the range of the Characters

                var ScaleLevelMax     = 1;
                var ScaleLevelMin     = 1;
                var ScaleLevelAverage = 1;

                if (CharacterList.Any())
                {
                    ScaleLevelMax     = GetMaxCharacterLevel();
                    ScaleLevelMin     = GetMinCharacterLevel();
                    ScaleLevelAverage = GetAverageCharacterLevel();
                }

                // Get 6 monsters

                //IF BOSS BATTLE THIS CHANGES

                if (GameGlobals.BossBattles)
                {
                    //roll D100
                    //determine if BB are enabled
                    Random random     = new Random();
                    int    checkValue = random.Next(0, 100);
                    //determine if BB is enabled
                    if (checkValue < GameGlobals.BossBattleChance * 100)
                    {
                        //enable BB and the battle is a boss
                        //this is General Woundwort

                        var monster = new Monster(myMonsterViewModel.Dataset[0]);
                        monster.Name += " " + (1 + MonsterList.Count()).ToString();
                        // Scale the monster to be between the average level of the characters+1
                        //but bc its a boss make it stronger
                        var rndScale = HelperEngine.RollDice(1, ScaleLevelAverage + 4);
                        monster.ScaleLevel(rndScale);
                        MonsterList.Add(monster);
                    }
                    else
                    {
                        do
                        {
                            var rnd = HelperEngine.RollDice(1, myMonsterViewModel.Dataset.Count);
                            {
                                var monster = new Monster(myMonsterViewModel.Dataset[rnd - 1]);

                                // Help identify which monster it is...
                                monster.Name += " " + (1 + MonsterList.Count()).ToString();

                                // Scale the monster to be between the average level of the characters+1
                                var rndScale = HelperEngine.RollDice(1, ScaleLevelAverage + 1);
                                monster.ScaleLevel(rndScale);
                                MonsterList.Add(monster);
                            }
                        } while (MonsterList.Count() < GameGlobals.MaxNumberPartyPlayers);
                    }
                }
                else
                {
                    do
                    {
                        var rnd = HelperEngine.RollDice(1, myMonsterViewModel.Dataset.Count);
                        {
                            var monster = new Monster(myMonsterViewModel.Dataset[rnd - 1]);

                            // Help identify which monster it is...
                            monster.Name += " " + (1 + MonsterList.Count()).ToString();

                            // Scale the monster to be between the average level of the characters+1
                            var rndScale = HelperEngine.RollDice(1, ScaleLevelAverage);
                            monster.ScaleLevel(rndScale);
                            MonsterList.Add(monster);
                        }
                    } while (MonsterList.Count() < GameGlobals.MaxNumberPartyPlayers);
                }


                //// No monsters in DB, so add 6 new ones...
                //for (var i = 0; i < GameGlobals.MaxNumberPartyPlayers; i++)
                //{
                //    var item = new Monster();
                //    // Help identify which monster it is...
                //    item.Name += " " + MonsterList.Count() + 1;
                //    MonsterList.Add(item);
                //}
            }
        }
Пример #4
0
        // Add Monsters
        // Scale them to meet Character Strength...
        private void AddMonstersToRound()
        {
            // Check to see if the monster list is full, if so, no need to add more...
            if (MonsterList.Count() >= 6)
            {
                return;
            }

            // Make suure monster list exists and is loaded...
            var myMonsterViewModel = MonstersViewModel.Instance;

            //myMonsterViewModel.ForceDataRefresh();

            // Scale monsters based on current character levels
            if (myMonsterViewModel.Dataset.Count() > 0)
            {
                // Scale monsters to be within the range of the characters
                var ScaleLevelMax     = 1;
                var ScaleLevelMin     = 1;
                var ScaleLevelAverage = 1;

                // If there are any characters get min, max, and average levels of all of them
                if (CharacterList.Any())
                {
                    ScaleLevelMin     = GetMinCharacterLevel();
                    ScaleLevelMax     = GetMaxCharacterLevel();
                    ScaleLevelAverage = GetAverageCharacterLevel();
                }

                // Get 6 monsters
                do
                {
                    // Roll dice to get random monster from dataset
                    var rnd = HelperEngine.RollDice(1, myMonsterViewModel.Dataset.Count);
                    {
                        // Ensure rnd number is less than dataset size
                        if (rnd > myMonsterViewModel.Dataset.Count())
                        {
                            rnd = myMonsterViewModel.Dataset.Count();
                        }

                        // Create a new monster from the monster in the dataset
                        var monster = new Monster(myMonsterViewModel.Dataset[rnd - 1]);

                        // Scale the monster to be between the average level of the characters+1
                        var rndScale = HelperEngine.RollDice(1, ScaleLevelAverage + 1);

                        // Scale monster to be harder later...
                        monster.ScaleLevel(rndScale);

                        // Add monster to the list
                        MonsterList.Add(monster);
                    }
                } while (MonsterList.Count() < 6);
            }
            else
            {
                // No mosnters in DB, so add 6 new ones...
                for (var i = 0; i < 6; i++)
                {
                    var monster = new Monster();

                    // Help identify which monster it is....
                    monster.Name += " " + MonsterList.Count() + 1;

                    // Add monster to the list
                    MonsterList.Add(monster);
                }
            }

            // Debug output text for chosen monsters
            var monstersOutput = "Chosen monsters: \n";

            monstersOutput += "Count: " + MonsterList.Count() + "\n";;

            // Add name of each monster to debug output statement
            foreach (var mon in MonsterList)
            {
                monstersOutput += mon.FormatOutput() + "\n";
            }

            // Write the debug output statement
            Debug.WriteLine(monstersOutput);
        }