示例#1
0
        private void InitialiteConsumables()
        {
            AnimalFood  animalFood  = new AnimalFood();
            AnimalWater animalWater = new AnimalWater();
            Fertilizer  fertilizer  = new Fertilizer();
            Fungicide   fungicide   = new Fungicide(50);
            Herbicide   herbicide   = new Herbicide(50);
            Irrigation  irrigation  = new Irrigation();
            Pesticide   pesticide   = new Pesticide(50);
            Vaccine     vaccine     = new Vaccine(50);

            market.AddConsumable(animalFood);
            market.AddConsumable(animalWater);
            market.AddConsumable(fertilizer);
            market.AddConsumable(fungicide);
            market.AddConsumable(herbicide);
            market.AddConsumable(irrigation);
            market.AddConsumable(pesticide);
            market.AddConsumable(vaccine);
        }
示例#2
0
        public void ApplyCure()
        {
            int selectedTerrainIndex = map.getTerrainIndex(player.Terrains, true);

            if (selectedTerrainIndex == -1)
            {
                Console.WriteLine("Opción no valida...");
            }
            else
            {
                Terrain selectedTerrain    = map.Terrains[selectedTerrainIndex];
                int     playerTerrainIndex = player.Terrains.IndexOf(selectedTerrain);
                Terrain terrain            = player.Terrains[playerTerrainIndex];

                if (!terrain.HasBuilding())
                {
                    Console.WriteLine("No tienes un edificio en este terreno...");
                }
                else
                {
                    Building terrainBuilding = terrain.Building;
                    if (terrainBuilding.GetType() == typeof(Plantation))
                    {
                        Plantation        plantationBuilding   = terrainBuilding as Plantation;
                        List <Consumable> availableConsumables = new List <Consumable>();

                        bool hasAvailableConsumables = false;
                        while (!hasAvailableConsumables)
                        {
                            availableConsumables = player.GetAvailableConsumables(new List <string> {
                                "Herbicide", "Pesticide", "Fungicide"
                            });
                            string option = CheckIfCanAddConsumableToTerrain(availableConsumables);

                            if (option == "out")
                            {
                                return;
                            }
                            else if (option == "continue")
                            {
                                hasAvailableConsumables = true;
                            }
                        }

                        Console.WriteLine("Elige uno de los productos disponibles:");
                        for (int i = 0; i < availableConsumables.Count; i++)
                        {
                            Console.WriteLine($"({i + 1}) - {availableConsumables[i].Name}");
                        }

                        int userOption = Int32.Parse(Console.ReadLine());

                        if (userOption < 1 || userOption > availableConsumables.Count)
                        {
                            Console.WriteLine("Opción no valida...");
                            return;
                        }

                        Consumable selectedConsumable = availableConsumables[userOption - 1];

                        if (selectedConsumable.GetType() == typeof(Herbicide))
                        {
                            Herbicide herbicideConsumable = selectedConsumable as Herbicide;
                            if (herbicideConsumable.CheckSuccess())
                            {
                                plantationBuilding.HasUndergrowth = false;
                                Console.WriteLine($"Herbicida funciono.");
                            }
                            else
                            {
                                Console.WriteLine($"Herbicida no funciono.");
                            }
                        }
                        else if (selectedConsumable.GetType() == typeof(Pesticide))
                        {
                            Pesticide pesticideConsumable = selectedConsumable as Pesticide;
                            if (pesticideConsumable.CheckSuccess())
                            {
                                plantationBuilding.HasWorms = false;
                                Console.WriteLine($"Pesticida funciono.");
                            }
                            else
                            {
                                Console.WriteLine($"Pesticida no funciono.");
                            }
                        }
                        else if (selectedConsumable.GetType() == typeof(Fungicide))
                        {
                            Fungicide fungicideConsumable = selectedConsumable as Fungicide;
                            if (fungicideConsumable.CheckSuccess())
                            {
                                plantationBuilding.Sick = false;
                                Console.WriteLine($"Fungicida funciono.");
                            }
                            else
                            {
                                Console.WriteLine($"Fungicida no funciono.");
                            }
                        }
                        else
                        {
                            return;
                        }

                        int indexOfConsumable = player.consumables.IndexOf(selectedConsumable);
                        player.consumables.RemoveAt(indexOfConsumable);
                    }
                    else if (terrainBuilding.GetType() == typeof(Livestock))
                    {
                        Livestock         liveStockBuilding    = terrainBuilding as Livestock;
                        List <Consumable> availableConsumables = new List <Consumable>();

                        bool hasAvailableConsumables = false;
                        while (!hasAvailableConsumables)
                        {
                            availableConsumables = player.GetAvailableConsumables(new List <string> {
                                "Vaccine"
                            });
                            string option = CheckIfCanAddConsumableToTerrain(availableConsumables);

                            if (option == "out")
                            {
                                return;
                            }
                            else if (option == "continue")
                            {
                                hasAvailableConsumables = true;
                            }
                        }

                        Console.WriteLine("Elige uno de los productos disponibles:");
                        for (int i = 0; i < availableConsumables.Count; i++)
                        {
                            Console.WriteLine($"({i + 1}) - {availableConsumables[i].Name}");
                        }

                        int userOption = Int32.Parse(Console.ReadLine());

                        if (userOption < 1 || userOption > availableConsumables.Count)
                        {
                            Console.WriteLine("Opción no valida...");
                            return;
                        }

                        Consumable selectedConsumable = availableConsumables[userOption - 1];

                        if (selectedConsumable.GetType() == typeof(Vaccine))
                        {
                            Vaccine vaccineConsumable = selectedConsumable as Vaccine;
                            if (vaccineConsumable.CheckSuccess())
                            {
                                liveStockBuilding.Sick = false;
                                Console.WriteLine($"Vacuna funciono.");
                            }
                            else
                            {
                                Console.WriteLine($"Vacuna no funciono.");
                            }
                        }
                        else
                        {
                            return;
                        }

                        int indexOfConsumable = player.consumables.IndexOf(selectedConsumable);
                        player.consumables.RemoveAt(indexOfConsumable);
                    }
                    else
                    {
                        return;
                    }
                }
            }
        }