using System.Text.RegularExpressions;
using System.Collections.Generic;
public static string selectMonstersN(string initialN, double initialC, double chMin, double chMax)
if (initialC <= chMax && initialC >= chMin)
public static double selectMonstersC(double initialC, double chMin, double chMax)
if (initialC <= chMax && initialC >= chMin)
public static void Main()
string[] partyStats = {"Max Health", "Current Health", "Physical Strength", "Magic Strength", "Armor Class", "Initiative", "Aptitude"};
int friendsRequiredExp = 100;
int[] seanStats = {100, 100, 10, 10, 13, -1, 20};
int[] mattStats = {80, 80, 6, 15, 12, 1, 20};
string[] monsterStats = {"Max Health", "Current Health", "Physical Strength", "Magic Strength", "Armor Class", "Initiative", "Aptitude", "Experience"};
List<string> enemyName = new List<string>();
List<double> enemyChallenge = new List<double>();
enemyName.Add("Small Slime");
int[] SlimeStats = {50, 50, 5, 7, 8, 2, 15, 30};
int[] GoblinStats = {75, 70, 5, 3, 13, 1, 20, 50};
enemyName.Add("Wendigo");
int[] WendigoStats = {100, 100, 12, 7, 12, -1, 17, 95};
double challengeMin = 0.0;
double challengeMax = 1.0;
Console.WriteLine("Welcome to the game: Friend Power! A text-based virtual combat sim by Sean Coughlin.");
Console.WriteLine("This game tells the tale of two friends, Sean and Matt.");
Console.WriteLine("They're playing a virtual reality game together, that you control.");
Console.WriteLine("In this virtual reality world, there are monsters everywhere!");
Console.WriteLine("Your job is to ensure they have a fun time, but they also stay safe!");
Console.WriteLine("Send monsters their way for them to defeat.");
Console.WriteLine("The more monsters they fight, the more fun they'll have.");
Console.WriteLine("And if both of their fun values dip below zero, they'll quit the game, and it's game over!");
Console.WriteLine("Okay! Let's get this game started!");
List <string> fighters = new List <string>();
Console.WriteLine($"- - - - - MATCH {match} - - - MONSTER SELECTION - - - - -");
Console.WriteLine("First, Choose the monsters you'd like to fight.");
Console.WriteLine("These are the monsters you are able to fight.");
Console.WriteLine("The CP number next to a monster is it's Challenge Points.");
Console.WriteLine("The more Challenge Points a monster has, the harder it'll be to defeat it.");
Console.WriteLine("Defeating monsters allows you to fight even stronger ones too!");
Console.WriteLine("You can only fight a maximum of ten monsters, but you have to fight something!");
for (int i = 0; i < enemyChallenge.Count(); i++)
if (selectMonstersN(enemyName[i], enemyChallenge[i], challengeMin, challengeMax) != "-" && selectMonstersC(enemyChallenge[i], challengeMin, challengeMax) != 0)
Console.WriteLine($"Enter {j} to fight a " + selectMonstersN(enemyName[i], enemyChallenge[i], challengeMin, challengeMax) + " - CP: " + selectMonstersC(enemyChallenge[i], challengeMin, challengeMax));
while(fighters.Count() < 12)
Console.Write("Type the respective number, then press enter to add a monster to the fight!");
Console.WriteLine("Once you're content with the adversary quantity, enter 0 to start the fight!");
option = Console.ReadLine();
optionI = Convert.ToInt32(option);
if(optionI < enemyName.Count() && optionI > 0)
fighters.Add(enemyName[optionI - 1]);
Console.WriteLine($"{enemyName[optionI - 1]} has been added to the fight!");
if(fighters.Count() < 12)
Console.WriteLine("We've reached the maximum amount of monsters! Now it's time to fight!");
Console.WriteLine("Ok then! Let's get going!");
Console.WriteLine("That an invalid entry! Try one of the numbers you were given.");
Console.WriteLine("That an invalid entry! Try one of the numbers you were given.");
while (friendsExp >= friendsRequiredExp)
friendsExp -= friendsRequiredExp;
friendsRequiredExp = Convert.ToInt32(Math.Round(friendsRequiredExp * 1.15));
Console.WriteLine($"The bond between you two grows stronger! Your levels have increased to {friendsLevel}!");
seanStats[0] = Convert.ToInt32(Math.Round(1.1*Convert.ToDouble(seanStats[0])));
mattStats[0] = Convert.ToInt32(Math.Round(1.1*Convert.ToDouble(mattStats[0])));
seanStats[2] = Convert.ToInt32(Math.Round(1.1*Convert.ToDouble(seanStats[2])));
mattStats[2] = Convert.ToInt32(Math.Round(1.1*Convert.ToDouble(mattStats[2])));
seanStats[3] = Convert.ToInt32(Math.Round(1.1*Convert.ToDouble(seanStats[3])));
mattStats[3] = Convert.ToInt32(Math.Round(1.1*Convert.ToDouble(mattStats[3])));
if(friendsLevel%10==0 && seanStats[6]<100)
Console.WriteLine("Sean's new stats are as follows!");
Console.WriteLine($"{partyStats[0]} _ {seanStats[0]}");
for(int i = 2; i < seanStats.Count(); i++)
Console.WriteLine($"{partyStats[i]} _ {seanStats[i]}");
Console.WriteLine("Matt's new stats are as follows!");
Console.WriteLine($"{partyStats[0]} _ {mattStats[0]}");
for(int i = 2; i < mattStats.Count(); i++)
Console.WriteLine($"{partyStats[i]} _ {mattStats[i]}");