// 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); } } }
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; }
// 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); //} } }
// 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); }