/// <summary> /// Взаимодействие с лутом. /// </summary> /// <param name="loot">Лут.</param> static void InteractionLoot(IBaseStaticObject loot) { Console.Clear(); Console.WriteLine("Найден предмет:\n" + $"--Имя: {loot.Name}\n" + $"--Ценность: {loot.Price}\n" + $"--Размер: {loot.Size}\n"); var machineIntermediary = new MachineIntermediary(_userSession.UserData.UserMachine, loot); Console.WriteLine("Взять?"); if (Console.ReadLine() == "1") { if (machineIntermediary.Take()) { Console.WriteLine($"Предмет {loot.Name} в кузове!!!"); _userSession.UserData.UserStatistics.ReceivedItems += 1; } else { Console.WriteLine("Нет места в кузове!!!\nОткрыть инвентарь?"); if (Console.ReadLine() == "1") { ShowUserInventoryInfo(); InteractionLoot(loot); } } } }
/// <summary> /// Инициализация класса. /// </summary> /// <param name="userMachine">Машина пользователя</param> /// <param name="staticObject">Предмет с которым происходит взаимодействие</param> public MachineIntermediary(UserMachine userMachine, IBaseStaticObject staticObject) { _userMachine = userMachine ?? throw new ArgumentNullException(nameof(userMachine)); _staticObject = staticObject ?? throw new ArgumentNullException(nameof(staticObject)); }