private void GiveQuests(Player player, List <Quest> activeQuests, List <Tuple <Enemy, int> > enemyTracker) { Console.Clear(); bool anyQuestGiven = false; foreach (var quest in quests) { if (player.QuestsDone.Find(x => x == quest.Item1) == null && activeQuests.Find(x => x == quest.Item1) == null) { if (quest.Item2 == null || player.QuestsDone.Find(x => x == quest.Item2) != null) { quest.Item1.Start(activeQuests, enemyTracker); quest.Item1.Info(player, enemyTracker); Util.Write("\n"); anyQuestGiven = true; } } } if (!anyQuestGiven) { Util.WriteColorString("@15|I don't have any @12|quest @15|for you\n"); } Console.ReadKey(); }
public override void Work(Player player) { while (true) { Console.Clear(); Util.WriteColorString(WorkMessage, true); Util.Write("1. Sell "); Util.WriteLine("items", ConsoleColor.DarkGray); Util.Write("2. Sell "); Util.WriteLine("consumables", ConsoleColor.Yellow); Util.WriteLine("\n0. Exit"); var decision = Console.ReadKey(); if (decision.Key == ConsoleKey.NumPad0) { break; } else if (decision.Key == ConsoleKey.NumPad1) { SellItems(player); } else if (decision.Key == ConsoleKey.NumPad2) { SellConsumables(player); } } }
public virtual void Info() { string info = "@11|" + Cost + " " + Name + " @15|- "; Util.WriteColorString(info); Util.WriteColorString(description); }
public void Hello() { Console.Clear(); Util.WriteColorString(helloMessage); Console.ReadKey(); }
public void Talk(Player player, List <Quest> activeQuests, List <Tuple <Enemy, int> > enemyTracker) { while (true) { Console.Clear(); Util.WriteColorString("@15|Hello, I'm @9|" + Name + "\n"); Util.WriteLine("\nSay: "); Util.WriteLine("1. Hello"); Util.Write("2. Ask about his "); Util.WriteLine("work", ConsoleColor.DarkYellow); Util.Write("3. Ask about the "); Util.WriteLine("place", ConsoleColor.Green); if (quests.Count > 0) { Util.Write("4. Ask if he has any "); Util.Write("quest ", ConsoleColor.Red); Util.WriteLine("for you"); Util.Write("5. Tell him about "); Util.Write("quest ", ConsoleColor.Red); Util.WriteLine("that you finished"); } Util.WriteLine("\n0. Exit"); var decision = Console.ReadKey(); if (decision.Key == ConsoleKey.NumPad0) { break; } else if (decision.Key == ConsoleKey.NumPad1) { Hello(); } else if (decision.Key == ConsoleKey.NumPad2) { Work(player); } else if (decision.Key == ConsoleKey.NumPad3) { Place(player, activeQuests, enemyTracker); } else if (decision.Key == ConsoleKey.NumPad4 && quests.Count > 0) { GiveQuests(player, activeQuests, enemyTracker); } else if (decision.Key == ConsoleKey.NumPad5 && quests.Count > 0) { FinishQuests(player, activeQuests, enemyTracker); } } }
public void Info(Player player, List <Tuple <Enemy, int> > enemyTracker) { Util.WriteLine(Name, ConsoleColor.Red); Util.WriteColorString(description, true); if (QuestEnemies.Count > 0) { Util.WriteLine("\nWin fights:"); int enemyCount = 0; foreach (var enemy in QuestEnemies) { if (enemyTracker.Find(x => x.Item1 == enemy.Item1) != null) { enemyCount = enemyTracker.Find(x => x.Item1 == enemy.Item1).Item2; } if (enemyCount > enemy.Item2) { enemyCount = enemy.Item2; } Util.Write(enemy.Item1.Name + " ", ConsoleColor.Blue); Util.WriteLine(enemyCount + " / " + enemy.Item2); } } if (QuestItems.Count > 0) { Util.WriteLine("\nGet:"); int itemCount = 0; foreach (var item in QuestItems) { if (player.QuestItems.Contains(item.Item1)) { itemCount = player.QuestItems.Find(x => x == item.Item1).Count; } else { itemCount = 0; } Util.Write(item.Item1.Name + " ", ConsoleColor.Red); Util.WriteLine(itemCount + " / " + item.Item2); } } }
public void Place(Player player, List <Quest> activeQuests, List <Tuple <Enemy, int> > enemyTracker) { Console.Clear(); if (placeQuest != null && activeQuests.Find(x => x == placeQuest) != null) { placeQuest.Finish(player, enemyTracker); activeQuests.Remove(placeQuest); Console.Clear(); } Util.WriteColorString(placeMessage); Console.ReadKey(); }
private void FinishQuests(Player player, List <Quest> activeQuests, List <Tuple <Enemy, int> > enemyTracker) { Console.Clear(); List <Quest> completedQuests = new List <Quest>(); foreach (var quest in quests) { if (!quest.Item1.OutsideFinish) { if (activeQuests.Find(x => x == quest.Item1) != null) { if (quest.Item1.CheckCompletion(player, enemyTracker)) { quest.Item1.Finish(player, enemyTracker); activeQuests.Remove(quest.Item1); completedQuests.Add(quest.Item1); Console.Clear(); } else { quest.Item1.Info(player, enemyTracker); Util.Write("\n"); } } } } if (completedQuests.Count == 0) { Util.WriteColorString("@15|You didn't complete any @12|quest\n"); Console.ReadKey(); } else { foreach (var quest in completedQuests) { quests.RemoveAll(x => x.Item1 == quest); } } }
public override void Work(Player player) { while (true) { Console.Clear(); Util.WriteColorString(WorkMessage, true); Util.WriteLine("1. Buy"); Util.WriteLine("\n0. Exit"); var decision = Console.ReadKey(); if (decision.Key == ConsoleKey.NumPad0) { break; } else if (decision.Key == ConsoleKey.NumPad1) { BuyItems(player); } } }