static void Main(string[] args) { Hacker Melody = new Hacker() { Name = "Melody", Skill = "Hacker", SkillLevel = 99, PercentageCut = 50 }; Hacker Marcus = new Hacker() { Name = "Marcus", Skill = "Hacker", SkillLevel = 40, PercentageCut = 18 }; Muscle Michael = new Muscle() { Name = "Michael", Skill = "Muscle", SkillLevel = 25, PercentageCut = 5 }; Muscle Trent = new Muscle() { Name = "Trent", Skill = "Muscle", SkillLevel = 80, PercentageCut = 15 }; LockSpecialist Manila = new LockSpecialist() { Name = "Manila", Skill = "Lock Specialist", SkillLevel = 75, PercentageCut = 35 }; LockSpecialist Latrice = new LockSpecialist() { Name = "Latrice", Skill = "Lock Specialist", SkillLevel = 45, PercentageCut = 30 }; List <IRobber> rolodex = new List <IRobber>() { Melody, Marcus, Michael, Trent, Manila, Latrice }; Console.WriteLine("Welcome to Heist Version 2!"); bool inputCheck = true; int operativeSpec = 0; string operativeName = "a"; int operativeSkill = 0; int operativeCut = 0; while (inputCheck == true) { Console.WriteLine(""); Console.WriteLine($"There are {rolodex.Count} operatives in your rolodex."); Console.WriteLine(""); Console.Write("Enter a new operatives name: "); operativeName = Console.ReadLine(); if (operativeName == "") { inputCheck = false; break; } Console.WriteLine(""); Console.WriteLine("1) Hacker (Disables alarms)"); Console.WriteLine("2) Muscle (Disarms guards)"); Console.WriteLine("3) Lock Specialist (cracks vault)"); Console.WriteLine(""); Console.Write("Choose a specialty for the operative: "); try { operativeSpec = int.Parse(Console.ReadLine()); } catch (Exception ex) { Console.WriteLine("Must choose a number!"); Console.WriteLine(""); Console.Write("Choose a specialty for the operative: "); operativeSpec = int.Parse(Console.ReadLine()); } Console.WriteLine(""); Console.Write("What is the operatives skill level? (1-100) : "); try { operativeSkill = int.Parse(Console.ReadLine()); } catch (Exception ex) { Console.WriteLine("Must choose a number!"); Console.WriteLine(""); Console.Write("What is the operatives skill level? (1-100) : "); operativeSkill = int.Parse(Console.ReadLine()); } Console.WriteLine(""); Console.Write("What percentage cut does the operative want? "); try { operativeCut = int.Parse(Console.ReadLine()); } catch (Exception ex) { Console.WriteLine("Must choose a number!"); Console.WriteLine(""); Console.Write("What percentage cut does the operative want? "); operativeCut = int.Parse(Console.ReadLine()); } if (operativeSpec == 1) { Hacker hacker = new Hacker() { Name = operativeName, Skill = "Hacker", SkillLevel = operativeSkill, PercentageCut = operativeCut }; rolodex.Add(hacker); } else if (operativeSpec == 2) { Muscle muscle = new Muscle() { Name = operativeName, Skill = "Muscle", SkillLevel = operativeSkill, PercentageCut = operativeCut }; rolodex.Add(muscle); } else if (operativeSpec == 3) { LockSpecialist lockSpec = new LockSpecialist() { Name = operativeName, Skill = "Lock Specialist", SkillLevel = operativeSkill, PercentageCut = operativeCut }; rolodex.Add(lockSpec); } } Random generator = new Random(); Bank Heist = new Bank() { AlarmScore = generator.Next(0, 100), SecurityGuardScore = generator.Next(0, 100), VaultScore = generator.Next(0, 100), CashonHand = generator.Next(50000, 1000000) }; Console.WriteLine($""); Console.WriteLine($""); Console.WriteLine("Bank Scounting Report:"); if (Heist.AlarmScore >= Heist.SecurityGuardScore && Heist.AlarmScore >= Heist.VaultScore) { Console.WriteLine(""); Console.WriteLine($"Most Secure: Alarm"); } else if (Heist.SecurityGuardScore >= Heist.AlarmScore && Heist.SecurityGuardScore >= Heist.VaultScore) { Console.WriteLine(""); Console.WriteLine($"Most Secure: Security"); } else if (Heist.VaultScore >= Heist.AlarmScore && Heist.VaultScore >= Heist.SecurityGuardScore) { Console.WriteLine(""); Console.WriteLine($"Most Secure: Vault"); } if (Heist.AlarmScore <= Heist.SecurityGuardScore && Heist.AlarmScore <= Heist.VaultScore) { Console.WriteLine(""); Console.WriteLine($"Least Secure: Alarm"); Console.WriteLine($""); } else if (Heist.SecurityGuardScore <= Heist.AlarmScore && Heist.SecurityGuardScore <= Heist.VaultScore) { Console.WriteLine(""); Console.WriteLine($"Least Secure: Security"); Console.WriteLine($""); } else if (Heist.VaultScore <= Heist.AlarmScore && Heist.VaultScore <= Heist.SecurityGuardScore) { Console.WriteLine(""); Console.WriteLine($"Least Secure: Vault"); Console.WriteLine($""); } List <IRobber> crew = new List <IRobber>(); int heistPercentage = 0; int opSelect = 0; string opSelectStr = "a"; while (opSelectStr != "") { int count = -1; Console.WriteLine($""); Console.WriteLine($"Operatives to choose from: "); foreach (IRobber operative in rolodex) { if ((heistPercentage + operative.PercentageCut) <= 100) { count++; Console.Write($"{count}) "); Console.WriteLine($"Name: {operative.Name}"); Console.WriteLine($"Skill Set: {operative.Skill}"); Console.WriteLine($"Skill Level: {operative.SkillLevel}"); Console.WriteLine($"Percentage Cut Desired: {operative.PercentageCut}"); Console.WriteLine(""); } } Console.Write("Select an operative via their number: "); opSelectStr = Console.ReadLine(); if (opSelectStr == "") { break; } try { opSelect = int.Parse(opSelectStr); } catch (Exception ex) { Console.WriteLine("You have to use a number!"); Console.WriteLine(""); Console.Write("Select an operative via their number: "); opSelectStr = Console.ReadLine(); opSelect = int.Parse(opSelectStr); } Console.WriteLine(""); crew.Add(rolodex[opSelect]); heistPercentage += rolodex[opSelect].PercentageCut; rolodex.Remove(rolodex[opSelect]); } Console.WriteLine(""); Console.WriteLine("The Heist has begun!"); Console.WriteLine(""); foreach (IRobber crewmem in crew) { crewmem.PerformSkill(Heist); Console.WriteLine($""); } int finalCash = Heist.CashonHand; if (Heist.AlarmScore <= 0 && Heist.SecurityGuardScore <= 0 && Heist.VaultScore <= 0) { Console.WriteLine(""); Console.WriteLine("The Heist was a success!"); Console.WriteLine(""); Console.WriteLine("Heist Report: "); Console.WriteLine(""); Console.WriteLine($""); foreach (IRobber crewmem in crew) { int percentMem = (Heist.CashonHand * crewmem.PercentageCut) / 100; Console.WriteLine($"{crewmem.Name} recieved ${ percentMem }"); finalCash -= (percentMem); Console.WriteLine($""); } Console.WriteLine(""); Console.WriteLine($"${finalCash} is left for your cut!"); } else { Console.WriteLine($""); Console.WriteLine("The Heist was a failure and you and your crew are on your way to jail!"); } Console.WriteLine(""); Console.WriteLine("Thank you for playing Heist 2"); }
static void Main(string[] args) { Console.Clear(); Console.WriteLine("Hello Bankheist!"); Hacker patrick = new Hacker() { Name = "Patrick", PercentageCut = 7, SkillLevel = 37 }; LockSpecialist tom = new LockSpecialist() { Name = "Tom", PercentageCut = 15, SkillLevel = 51 }; Hacker rose = new Hacker() { Name = "Rose", PercentageCut = 15, SkillLevel = 54 }; Hacker mo = new Hacker() { Name = "Mo", PercentageCut = 15, SkillLevel = 54 }; Hacker andy = new Hacker() { Name = "Andy", PercentageCut = 20, SkillLevel = 76 }; Muscle barney = new Muscle() { Name = "Barney", PercentageCut = 10, SkillLevel = 41 }; Muscle vito = new Muscle() { Name = "Vito", PercentageCut = 15, SkillLevel = 56 }; Muscle clamps = new Muscle() { Name = "Clamps", PercentageCut = 20, SkillLevel = 72 }; LockSpecialist nick = new LockSpecialist() { Name = "Nick", PercentageCut = 10, SkillLevel = 32 }; LockSpecialist jonas = new LockSpecialist() { Name = "Jonas", PercentageCut = 20, SkillLevel = 69 }; List <IRobber> rolodex = new List <IRobber> () { patrick, rose, mo, andy, barney, vito, clamps, nick, tom, jonas }; string response; do { int operatives = rolodex.Count(); Console.WriteLine($"There are {operatives} operatives available in the Rolodex"); Console.WriteLine("Let's enter a new operative to the rolodex (hit Enter now to bypass.)"); response = Console.ReadLine(); if (response.Length == 0) { break; } addOperative(response, rolodex); } while (response.Length != 0); printRolodex(rolodex); }