Example #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello! Welcome to Virtual Pets shelter");

            Shelter shelter = new Shelter();
            Pet     pet     = new Pet();
            Random  random  = new Random();

            bool   keepPlaying    = true;
            bool   returnToOffice = false;
            string playerChoice;

            while (keepPlaying)
            {
                Console.WriteLine("Welcome to " + shelter.Name + " Animal Shelter.");
                Console.WriteLine("What would you like to do?");
                Console.WriteLine("1. Name/Re-Name Shelter");
                Console.WriteLine("2. Add Organic Pet");
                Console.WriteLine("3. Add Robotic Pet");
                Console.WriteLine("4. Adopt a Pet");
                Console.WriteLine("5. List Pets in Shelter");
                Console.WriteLine("6. Enter the Kennel");
                Console.WriteLine("7. Quit");

                playerChoice = Console.ReadLine();

                Console.Clear();

                switch (playerChoice)
                {
                case "1":

                    Console.WriteLine("What do you want to name your Animal Shelter?");
                    shelter.Name = Console.ReadLine();

                    break;

                case "2":
                    Console.WriteLine("What is the name of your pet?");
                    string nameOfPet = Console.ReadLine();
                    Console.WriteLine("What is the species of your pet?");
                    string  speciesOfPet = Console.ReadLine();
                    Organic organic      = new Organic(nameOfPet, speciesOfPet);
                    shelter.AddPet(organic);

                    break;

                case "3":
                    Console.WriteLine("What is the name of your pet?");
                    nameOfPet = Console.ReadLine();
                    Console.WriteLine("What is the species of your pet?");
                    speciesOfPet = Console.ReadLine();
                    Robotic robotic = new Robotic(nameOfPet, speciesOfPet);
                    shelter.AddPet(robotic);
                    break;

                case "4":
                    Console.WriteLine("Which pet would you like to adopt?");
                    string userPet = Console.ReadLine();

                    int userPetIndex = shelter.SelectPet(userPet);

                    if (userPetIndex == -1)
                    {
                        Console.WriteLine("That pet isn't listed in our records.");
                    }

                    else
                    {
                        Console.WriteLine(shelter.ListofPets[userPetIndex].Name + " has been adopted.");
                        shelter.RemovePet(userPetIndex);
                    }

                    Console.ReadKey();
                    break;

                case "5":
                    for (int i = 0; i < shelter.ListofPets.Count; i++)
                    {
                        if (shelter.ListofPets[i].IsOrganic == true)
                        {
                            Console.WriteLine(shelter.ListofPets[i].Name + " the organic " + shelter.ListofPets[i].Species);
                        }
                        else
                        {
                            Console.WriteLine(shelter.ListofPets[i].Name + " the robotic " + shelter.ListofPets[i].Species);
                        }
                    }
                    Console.ReadKey();
                    break;

                case "6":

                    returnToOffice = false;
                    while (returnToOffice == false)
                    {
                        Kennel();
                    }

                    break;

                case "7":
                    keepPlaying = false;
                    break;

                default:
                    Console.WriteLine("Please enter a valid number.");
                    break;
                }
                Console.Clear();
            }


            void Kennel()
            {
                Console.WriteLine("What would you like to do?");
                Console.WriteLine("1. Feed all organic pets");
                Console.WriteLine("2. Oil all robotic pets");
                Console.WriteLine("3. Play with all pets");
                Console.WriteLine("4. Take all organic pets to Doctor");
                Console.WriteLine("5. Perform maintenence on all Robotic Pets");
                Console.WriteLine("6. Interact with a single pet");
                Console.WriteLine("7. Check all pet statuses");
                Console.WriteLine("8. Return to Office");

                playerChoice = Console.ReadLine();

                switch (playerChoice)
                {
                case "1":
                    for (int i = 0; i < shelter.ListofPets.Count; i++)
                    {
                        if (shelter.ListofPets[i].IsOrganic == true)
                        {
                            shelter.ListofPets[i].Feed();
                        }
                    }
                    Console.WriteLine("You fed the pets!");
                    break;

                case "2":
                    for (int i = 0; i < shelter.ListofPets.Count; i++)
                    {
                        if (shelter.ListofPets[i].IsOrganic == false)
                        {
                            shelter.ListofPets[i].GiveOil();
                        }
                    }
                    Console.WriteLine("You oiled the pets!");
                    break;

                case "3":
                    for (int i = 0; i < shelter.ListofPets.Count; i++)
                    {
                        shelter.ListofPets[i].Play();
                    }
                    Console.WriteLine("You played with the pets!");
                    break;

                case "4":
                    for (int i = 0; i < shelter.ListofPets.Count; i++)
                    {
                        if (shelter.ListofPets[i].IsOrganic == true)
                        {
                            shelter.ListofPets[i].SeeDoctor();
                        }
                    }
                    Console.WriteLine("You took the pets to the doctor!");
                    break;

                case "5":
                    for (int i = 0; i < shelter.ListofPets.Count; i++)
                    {
                        if (shelter.ListofPets[i].IsOrganic == false)
                        {
                            shelter.ListofPets[i].PerformMaintenance();
                        }
                    }
                    Console.WriteLine("You repaired the pets!");
                    break;

                case "6":

                    Console.WriteLine("What pet do you want to interact with?");
                    string userPet = Console.ReadLine();

                    int userPetIndex = shelter.SelectPet(userPet);

                    SinglePet(userPetIndex);

                    break;

                case "7":
                    for (int i = 0; i < shelter.ListofPets.Count; i++)
                    {
                        if (shelter.ListofPets[i].IsOrganic == true)
                        {
                            Console.WriteLine($"{shelter.ListofPets[i].Name} the organic {shelter.ListofPets[i].Species}- Hunger: {shelter.ListofPets[i].Hunger} " +
                                              $"Health: {shelter.ListofPets[i].Health} Boredom: {shelter.ListofPets[i].Boredom}");
                        }
                        else if (shelter.ListofPets[i].IsOrganic == false)
                        {
                            Console.WriteLine($"{shelter.ListofPets[i].Name} the robotic {shelter.ListofPets[i].Species}- Oil: {shelter.ListofPets[i].Oil} " +
                                              $"Performance: {shelter.ListofPets[i].Performance} Boredom: {shelter.ListofPets[i].Boredom}");
                        }
                    }
                    break;

                case "8":
                    Console.WriteLine("Thank you for taking care of the pets.");
                    returnToOffice = true;
                    break;

                default:
                    Console.WriteLine("Please select a valid option");
                    break;
                }

                shelter.Tick();
                Console.ReadKey();
                Console.Clear();
            }

            void SinglePet(int index)
            {
                bool returnToKennel = false;

                while (returnToKennel == false)
                {
                    Console.Clear();
                    Console.WriteLine("What would you like to do?");
                    Console.WriteLine("1. Name/Rename " + shelter.ListofPets[index].Name);
                    Console.WriteLine("2. Change Species of " + shelter.ListofPets[index].Name);
                    if (shelter.ListofPets[index].IsOrganic == true)
                    {
                        Console.WriteLine("3. Feed " + shelter.ListofPets[index].Name);
                        Console.WriteLine("4. Play with " + shelter.ListofPets[index].Name);
                        Console.WriteLine("5. Take " + shelter.ListofPets[index].Name + " to Doctor");
                    }
                    else
                    {
                        Console.WriteLine("3. Oil " + shelter.ListofPets[index].Name);
                        Console.WriteLine("4. Play with " + shelter.ListofPets[index].Name);
                        Console.WriteLine("5. Perform Maintenance on " + shelter.ListofPets[index].Name);
                    }
                    Console.WriteLine("6. Check " + shelter.ListofPets[index].Name + "'s status");
                    Console.WriteLine("7. Return to Kennel");

                    playerChoice = Console.ReadLine();

                    switch (playerChoice)
                    {
                    case "1":
                        Console.WriteLine("What would you like you to rename your pet?");
                        shelter.ListofPets[index].Name = Console.ReadLine();
                        Console.WriteLine("You named your pet " + shelter.ListofPets[index].Name);
                        break;

                    case "2":
                        Console.WriteLine("What species do you want " + shelter.ListofPets[index].Name + " to be?");
                        shelter.ListofPets[index].Species = Console.ReadLine();
                        Console.WriteLine(shelter.ListofPets[index].Name + " is a " + shelter.ListofPets[index].Species);
                        break;

                    case "3":

                        if (shelter.ListofPets[index].IsOrganic == true)
                        {
                            Console.WriteLine("What would you like to feed " + shelter.ListofPets[index].Name + "?");
                            string food = Console.ReadLine();
                            if (random.Next(1, 100) < shelter.ListofPets[index].Boredom)
                            {
                                Console.WriteLine(shelter.ListofPets[index].Name + " doesnt't want your food.");
                            }
                            else
                            {
                                pet.Feed(food.ToLower());
                                Console.WriteLine("You fed " + shelter.ListofPets[index].Name);
                                Console.WriteLine(shelter.ListofPets[index].Name + "s hunger level is " + shelter.ListofPets[index].Hunger);
                            }
                        }

                        else
                        {
                            Console.WriteLine("You oiled " + shelter.ListofPets[index].Name);
                            shelter.ListofPets[index].GiveOil();
                            Console.WriteLine(shelter.ListofPets[index].Name + "'s oil level is " + shelter.ListofPets[index].Oil);
                        }
                        break;

                    case "4":
                        pet.Play();
                        Console.WriteLine("You played with " + shelter.ListofPets[index].Name);
                        Console.WriteLine(shelter.ListofPets[index].Name + "s boredom level is " + shelter.ListofPets[index].Boredom);
                        if (shelter.ListofPets[index].IsOrganic == true)
                        {
                            Console.WriteLine(shelter.ListofPets[index].Name + "s health level is " + shelter.ListofPets[index].Health);
                            Console.WriteLine(shelter.ListofPets[index].Name + "s hunger level is " + shelter.ListofPets[index].Hunger);
                        }

                        else
                        {
                            Console.WriteLine(shelter.ListofPets[index].Name + "s oil level is " + shelter.ListofPets[index].Oil);
                            Console.WriteLine(shelter.ListofPets[index].Name + "s performance level is " + shelter.ListofPets[index].Performance);
                        }
                        break;

                    case "5":

                        if (shelter.ListofPets[index].IsOrganic == true)
                        {
                            pet.SeeDoctor();
                            Console.WriteLine("You took " + shelter.ListofPets[index].Name + " to the doctor.");
                            Console.WriteLine(shelter.ListofPets[index].Name + "'s health is now " + shelter.ListofPets[index].Health);
                        }
                        else
                        {
                            pet.PerformMaintenance();
                            Console.WriteLine("You performed maintenance on " + shelter.ListofPets[index].Name);
                            Console.WriteLine(shelter.ListofPets[index].Name + "'s oil level is now " + shelter.ListofPets[index].Oil);
                            Console.WriteLine(shelter.ListofPets[index].Name + "'s performance level is now " + shelter.ListofPets[index].Performance);
                        }
                        break;

                    case "6":
                        Console.WriteLine(shelter.ListofPets[index].Name);
                        Console.WriteLine(shelter.ListofPets[index].Species);
                        if (shelter.ListofPets[index].IsOrganic == true)
                        {
                            Console.WriteLine("Hunger: " + shelter.ListofPets[index].Hunger);
                            Console.WriteLine("Health: " + shelter.ListofPets[index].Health);
                        }
                        else
                        {
                            Console.WriteLine("Oil: " + shelter.ListofPets[index].Oil);
                            Console.WriteLine("Performance: " + shelter.ListofPets[index].Performance);
                        }
                        Console.WriteLine("Boredom: " + shelter.ListofPets[index].Boredom);

                        break;

                    case "7":
                        Console.WriteLine("Thank you for playing with " + shelter.ListofPets[index].Name + "!");
                        returnToKennel = true;

                        break;

                    default:
                        Console.WriteLine("Please enter a valid entry");
                        break;
                    }

                    Console.WriteLine("Press any key to continue");
                    Console.ReadKey();

                    Console.Clear();
                    shelter.ListofPets[index].Tick();

                    //if (shelter.ListofPets[index].Health <= 0)
                    //{
                    //    Console.WriteLine(shelter.ListofPets[index].Name.ToUpper() + " HAS DIED!");

                    //    returnToKennel = true;
                    //}

                    //else if (shelter.ListofPets[index].Performance <= 0)
                    //{
                    //    Console.WriteLine(shelter.ListofPets[index].Name.ToUpper() + " HAS BROKEN!");


                    //    returnToKennel = true;
                    //}

                    //else if (shelter.ListofPets[index].Hunger > 100)
                    //{

                    //    shelter.ListofPets[index].Hunger -= 10;
                    //    Console.WriteLine(shelter.ListofPets[index].Name + " got hungry and found some food on their own.");

                    //}

                    //else if (shelter.ListofPets[index].Oil < 0)
                    //{
                    //    shelter.ListofPets[index].Oil += 10;
                    //    Console.WriteLine(shelter.ListofPets[index].Name + " got squeaky and found some oil on it's own.");
                    //}

                    //else if (shelter.ListofPets[index].Boredom > 100)
                    //{
                    //    shelter.ListofPets[index].Boredom -= 10;
                    //    Console.WriteLine(shelter.ListofPets[index].Name + " got bored and found a toy to play with.");

                    //}

                    //if (shelter.ListofPets[index].Health <= 0)
                    //{
                    //    Console.WriteLine(@"(\ _ /)");
                    //    Console.WriteLine("(X - X)");
                    //    Console.WriteLine("c(\")(\")");
                    //    shelter.RemovePet(index);
                    //}

                    //else if (shelter.ListofPets[index].Performance <= 0)
                    //{
                    //    Console.WriteLine(@"(\ _ /)");
                    //    Console.WriteLine("(X - X)");
                    //    Console.WriteLine("c(\")(\")");
                    //    shelter.RemovePet(index);
                    //}

                    //else if (shelter.ListofPets[index].Health < 20)
                    //{
                    //    Console.WriteLine(@"(\ _ /)");
                    //    Console.WriteLine("(0 ~ 0)");
                    //    Console.WriteLine("c(\")(\")");
                    //}

                    //else if (shelter.ListofPets[index].Performance <20)
                    //{
                    //    Console.WriteLine(@"(\ _ /)");
                    //    Console.WriteLine("(0 ~ 0)");
                    //    Console.WriteLine("c(\")(\")");
                    //}

                    //else if (shelter.ListofPets[index].Boredom > 80)
                    //{
                    //    Console.WriteLine(@"(\ _ /)");
                    //    Console.WriteLine("(- X -)");
                    //    Console.WriteLine("c(\")(\")");
                    //}

                    //else if (shelter.ListofPets[index].Hunger > 80)
                    //{
                    //    Console.WriteLine(@"(\ _ /)");
                    //    Console.WriteLine("(' O ')");
                    //    Console.WriteLine("c(\")(\")");
                    //}

                    //else if (shelter.ListofPets[index].Oil < 20)
                    //{
                    //    Console.WriteLine(@"(\ _ /)");
                    //    Console.WriteLine("(' O ')");
                    //    Console.WriteLine("c(\")(\")");
                    //}

                    //else
                    //{
                    //    Console.WriteLine(@"(\ _ /)");
                    //    Console.WriteLine("(' X ')");
                    //    Console.WriteLine("c(\")(\")");
                    //}
                    //Console.ReadKey();
                }
            }
        }