public void Travel() { int StaminaUse; int Choice; bool meetAnimal; do { ShowPlayerData(); Console.WriteLine("Wybierz cel swojej podróży:"); Console.WriteLine(); var places = placeService.GetPlaceData(); int id = 1; foreach (var item in places) { Console.WriteLine($"{id}) {item.Name}" + $" Zużycie wytrzymałości: {item.StaminaUse}"); id++; Console.WriteLine(); } Console.WriteLine("6) Wróć do menu"); Choice = GetIntKeyDown(1, 6, out isParsed); if (Choice >= 1 && Choice <= 5) { if (placeService.StaminaCheck(Choice, playerService.GetStamina(), out StaminaUse)) { playerService.UseStamina(StaminaUse); meetAnimal = playerService.MeetAnimal(); if (meetAnimal) { BattleData battleData = playerService.GetBattleData(); Enemy enemy = battleService.GetEnemy(); Random random = new Random(); bool isParsed = false; Choice = 0; int atack; Console.Clear(); Console.WriteLine($"Podczas swojej podróży napotykasz się na {enemy.Name}"); Console.WriteLine("Chyba nie jest zbyt zadowolony twoją obecnością. Lepiej na siebie uważaj"); Console.ReadKey(); while (!isParsed) { Console.Clear(); Console.WriteLine("1)Walka"); Console.WriteLine("2)Ucieczka"); Choice = GameManager.GetIntKeyDown(1, 2, out isParsed); } switch (Choice) { case 1: while (battleData.HP > 0 && enemy.HP > 0) { atack = (int)(random.Next(50, 200) / 100 * battleData.AtackPoints) - (int)(random.NextDouble() * enemy.ArmorPoints / 2); Console.WriteLine($"{enemy.Name} otrzymuje {atack} obrażeń"); enemy.HP -= atack; Thread.Sleep(1500); if (enemy.HP > 0) { atack = (int)(random.Next(50, 200) / 100 * enemy.AtackPoints) - (int)(random.NextDouble() * battleData.ArmorPoints / 2); Console.WriteLine($"{battleData.Name} otrzymuje {atack} obrażeń"); battleData.HP -= atack; Thread.Sleep(1500); } } break; case 2: if (enemy.CanRunAway) { Console.Clear(); Console.WriteLine("Tym razem udało ci się uciec."); Console.ReadKey(); } else { Console.WriteLine("Biegłeś ile sił w nogach ale niestety"); Console.WriteLine("byłeś zbyt wolny... musisz walczyć!"); Console.ReadKey(); while (battleData.HP > 0 && enemy.HP > 0) { Console.Clear(); atack = (int)(random.Next(50, 200) / 100 * enemy.AtackPoints) - (int)(random.NextDouble() * battleData.ArmorPoints / 2); Console.WriteLine($"{battleData.Name} otrzymuje {atack} obrażeń"); battleData.HP -= atack; Thread.Sleep(1500); atack = (int)(random.Next(50, 200) / 100 * battleData.AtackPoints) - (int)(random.NextDouble() * enemy.ArmorPoints / 2); Console.WriteLine($"{enemy.Name} otrzymuje {atack} obrażeń"); enemy.HP -= atack; Thread.Sleep(1500); } } break; default: break; } if (battleData.HP > 0) { Console.WriteLine($"Gratulacje udało ci się pokonać {enemy.Name}"); battleData.ConsumerLoot = enemy.Loot.ToList(); } Console.ReadKey(); playerService.SaveBattleData(battleData); if (playerService.GetHP() > 0) { int time = placeService.GetTravellingTime(Choice); Console.Clear(); for (int i = time; i > 0; i--) { Console.WriteLine($"Dotrzesz do celu podróży za: {i}"); Thread.Sleep(1000); Console.Clear(); } playerService.AddMaterialsToBackpack(placeService.GetMaterials(Choice, playerService.GetMultipliers())); } else { Console.Clear(); Console.WriteLine($"przykro mi {playerService.GetBattleData().Name}..."); Console.ReadKey(); Console.WriteLine("Niestety nie udało ci się wygrać swojej walki i zostałeś zjedzony"); Console.WriteLine("przez zwierzęta... Jedyne co moge dla ciebie zrobić to cofnąć czas"); Console.WriteLine("do momentu zanim wyruszyłeś na przygodę"); Console.ReadKey(); playerService.Dead(); } } else { int time = placeService.GetTravellingTime(Choice); Console.Clear(); for (int i = time; i > 0; i--) { Console.WriteLine($"Dotrzesz do celu podróży za: {i}"); Thread.Sleep(1000); Console.Clear(); } playerService.AddMaterialsToBackpack(placeService.GetMaterials(Choice, playerService.GetMultipliers())); } } else { ShowPlayerData(); Console.WriteLine("Nie możesz się tam udać jesteś zbyt zmęczony!"); Console.ReadKey(); isParsed = false; } } else if (Choice == 6) { isParsed = true; } } while (!isParsed); }