public CatAchievements(int num_pets = 0, int num_brushes = 0, float time_played = 0F, int litter_box_cleaned = 0)
    {
        this.num_pets           = num_pets;
        this.num_brushes        = num_brushes;
        this.time_played        = time_played;
        this.litter_box_cleaned = litter_box_cleaned;

        unlocked = new LinkedList <CatAchievement>();

        locked = new LinkedList <CatAchievement>();

        // Add acheivements for reaching counters
        for (int factor = 1, i = 0; i < 4; ++i, factor *= 10)
        {
            locked.AddFirst(new PetAchievement(factor));
            locked.AddFirst(new BrushAchievement(factor));
            locked.AddFirst(new MinutesPlayedAchievement(factor));
            locked.AddFirst(new LitterBoxCleanedAchievement(factor));
        }

        GetNewUnlocks(true);

        if (AdoptionCenter.IsActive())
        {
            return;
        }

        this.ui = GameObject.Find("achievement_panel").GetComponent <AchievementUI>();
    }
示例#2
0
        public override void Execute()
        {
            string name = this.Data[0];

            IAdoptionCenter adoptionCenter = new AdoptionCenter(name);

            this.Database.AddAdoptionCenter(adoptionCenter);
        }
示例#3
0
        public void Adopt(string[] arr)
        {
            string         adoptionCenterName = arr[1];
            AdoptionCenter curr = this.AdoptionCenterlis.
                                  Where(se => se.SeeName() == adoptionCenterName).First();

            this.adopted = curr.Adoptation().Select(se => se.Name).ToList();
        }
示例#4
0
        public void RegisterAdoptingCenter(string name)
        {
            AdoptionCenter adoption = new AdoptionCenter(name);

            if (!this.adoptionCenter.ContainsKey(name))
            {
                this.adoptionCenter.Add(name, adoption);
            }
        }
示例#5
0
        public void SendForCastration(string[] arr)
        {
            string           adoptionCenterName   = arr[1];
            string           castrationCenterName = arr[2];
            AdoptionCenter   CurrAdop             = this.AdoptionCenterlis.Where(se => se.Name == adoptionCenterName).First();
            CastrationCenter CurrCastr            = this.CastrationCentersLis.Where(se => se.Name == castrationCenterName).First();

            CurrAdop.Send4Cast(CurrCastr);
        }
    static void Main()
    {
        string input;
        var    centers = new List <Center>();
        var    animals = new List <Animal>();

        while ((input = Console.ReadLine()) != "Paw Paw Pawah")
        {
            var args = input
                       .Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)
                       .Select(w => w.Trim())
                       .ToArray();

            var command = args[0];

            switch (command)
            {
            case "RegisterCleansingCenter":
                var newCleansingCenter = new CleansingCenter(args[1]);
                centers.Add(newCleansingCenter);
                break;

            case "RegisterAdoptionCenter":
                var newAdoptionCenter = new AdoptionCenter(args[1]);
                centers.Add(newAdoptionCenter);
                break;

            case "RegisterDog":
                RegisterDogCommand(args, centers);
                break;

            case "RegisterCat":
                RegisterCatCommand(args, centers);
                break;

            case "SendForCleansing":
                SendForCleansingCommand(args, centers);
                break;

            case "Cleanse":
                CleanseAnimalsCommand(args, centers);
                break;

            case "Adopt":
                AdoptAnimalsCommand(args, centers);
                break;

            default:
                throw new ArgumentException();
            }
        }
        Console.WriteLine();
        PrintResult(centers);
    }
示例#7
0
        public void SendForCleansing(string[] arr)
        {
            string adoptionCenterName  = arr[1];
            string cleansingCenterName = arr[2];

            AdoptionCenter CurrAdoptionCenter = this.AdoptionCenterlis.
                                                Where(se => se.SeeName() == adoptionCenterName).First();
            CleansingCenter CurrCleansingCenter = this.CleansingCenterlis.
                                                  Where(se => se.SeeName() == cleansingCenterName).First();

            CurrAdoptionCenter.Cleanse(CurrCleansingCenter);
        }
示例#8
0
        public void SendForCleansing(string adoptionCenterName, string cleansingCenterName)
        {
            AdoptionCenter adoptionCenter =
                this.adoptionCenter[adoptionCenterName];
            CleansingCenter cleansingCenter =
                this.cleansingCenter[cleansingCenterName];

            if (adoptionCenter == null || cleansingCenter == null)
            {
                throw new ArgumentException("No such Center!");
            }
            adoptionCenter.SenForCleaning(cleansingCenter);
            //    this.adoptionCenter[adoptionCenterName]
            //        .SenForCleaning(this.cleansingCenter[cleansingCenterName]);
        }
示例#9
0
        public void Cleanse(string[] arr)
        {
            string          cleansingCenterName = arr[1];
            CleansingCenter CurrCleansingCenter = this.CleansingCenterlis.
                                                  Where(se => se.SeeName() == cleansingCenterName).First();

            CurrCleansingCenter.Cleanse();
            AllCleansedAnimals = CurrCleansingCenter.animals.Select(se => se.Name).ToList();
            foreach (var animal in CurrCleansingCenter.animals)
            {
                AdoptionCenter curr = AdoptionCenterlis.
                                      Where(se => se.SeeName() == animal.DefCenter).First();
                curr.AddAnimal(animal);
            }
        }
        // send all uncleansed animals from the given adoption center to the given cleansing center

        public void SendForCleansing(List <string> arguments)
        {
            var adoptionCenterName  = arguments[0];
            var cleansingCenterName = arguments[1];

            var adoptionCenter = adoptionCenters.FirstOrDefault(n => n.Name.Equals(adoptionCenterName));

            var animalsForCleansing = adoptionCenter
                                      .AllRegisteredAnimals
                                      .FindAll(a =>
                                               a.IsCleansed == false && a.AdoptionCenterName.Equals(adoptionCenterName));

            currentAdoptionCenter = adoptionCenter;

            var cleansingCenter = cleansingCenters
                                  .FirstOrDefault(n => n.Name.Equals(cleansingCenterName));

            cleansingCenter.Animals.AddRange(animalsForCleansing);
        }
    public CatPersonality(float hungriness, float tierdness, float playfullness, float cleanlieness, float sociability, float sleep_threshold = 0.2F, float hunger_threshold = 0.25F, float bladder_threshold = 0.2F, float fun_threshold = 0.7F)
    {
        this.hungriness        = hungriness;
        this.tierdness         = tierdness;
        this.playfullness      = playfullness;
        this.cleanlieness      = cleanlieness;
        this.sociability       = sociability;
        this.sleep_threshold   = sleep_threshold;
        this.hunger_threshold  = hunger_threshold;
        this.bladder_threshold = bladder_threshold;
        this.fun_threshold     = fun_threshold;

        // If in adoption mode, set card sliders
        if (AdoptionCenter.IsActive())
        {
            GameObject.Find("hungriness_slider").GetComponent <Slider>().value   = (int)100 * this.hungriness;
            GameObject.Find("tierdness_slider").GetComponent <Slider>().value    = (int)100 * this.tierdness;
            GameObject.Find("playfullness_slider").GetComponent <Slider>().value = (int)100 * this.playfullness;
            GameObject.Find("cleanlieness_slider").GetComponent <Slider>().value = (int)100 * this.cleanlieness;
            GameObject.Find("sociability_slider").GetComponent <Slider>().value  = (int)100 * this.sociability;
            return;
        }

        this.bond_increase_per_second = CalculateMultipier(0.01F, 0.02F, this.sociability);
        this.bond_increase_when_being_pet_per_second  = CalculateMultipier(0.01F, 0.02F, this.sociability);
        this.bond_increase_per_happieness_per_second  = CalculateMultipier(0.01F, 0.02F, this.sociability);
        this.fullness_decrease_per_second             = CalculateMultipier(0.008F, 0.015F, this.hungriness);
        this.fullness_increase_when_eating_per_second = CalculateMultipier(0.05F, 0.1F, this.hungriness, true);
        this.energy_decrease_per_second = CalculateMultipier(0.006F, 0.01F, this.tierdness);
        this.energy_increase_when_sleeping_per_second = CalculateMultipier(0.1F, 0.2F, this.tierdness, true);
        this.fun_decrease_per_second = CalculateMultipier(0.015F, 0.025F, this.playfullness);
        this.fun_increase_when_following_laser_per_second   = CalculateMultipier(0.05F, 0.1F, this.playfullness);
        this.fun_increase_when_playing_with_yarn_per_second = CalculateMultipier(0.05F, 0.1F, this.playfullness);
        this.fun_increase_when_on_catnip_per_second         = CalculateMultipier(0.05F, 0.1F, this.playfullness);
        this.hygiene_decrease_per_second = CalculateMultipier(0.01F, 0.02F, this.cleanlieness);
        this.hygiene_increase_when_being_brushed_per_second = CalculateMultipier(0.1F, 0.2F, this.cleanlieness);
        this.bladder_decrease_per_second = CalculateMultipier(0.005F, 0.01F, Random.Range(MIN, MAX));
        this.bladder_increase_when_using_litter_box_per_second = CalculateMultipier(0.1F, 0.2F, Random.Range(MIN, MAX));

        agent = GameObject.Find("Cat").GetComponent <UnityEngine.AI.NavMeshAgent>();
    }
示例#12
0
    public void RegisterAdoptionCenter(string name)
    {
        AdoptionCenter current = new AdoptionCenter(name);

        this.AdoptionCenters[name] = current;
    }
        // register adoption center with provided adoption center name

        public void RegisterAdoptionCenter(string adoptionCenterName)
        {
            var adoptionCenter = new AdoptionCenter(adoptionCenterName);

            adoptionCenters.Add(adoptionCenter);
        }
示例#14
0
    public CatStats(float energy = MAX, float fullness = MAX, float fun = MAX, float hygiene = MAX, float bladder = MAX, float bond = MAX)
    {
        this.energy   = energy;
        this.fullness = fullness;
        this.fun      = fun;
        this.hygiene  = hygiene;
        this.bladder  = bladder;
        this.bond     = bond;



        if (AdoptionCenter.IsActive())
        {
            return;
        }

        //Debug.Log("Initializing energy_buff...");
        this.energy_buff = new Buff(true, DEFAULT_BUFF_VALUE, GameObject.Find("EnergySliderGreenEffect"), GameObject.Find("EnergySliderYellowEffect"));

        //Debug.Log("Initializing energy_debuff...");
        this.energy_debuff = new Buff(false, DEFAULT_BUFF_VALUE, GameObject.Find("EnergySliderGreenEffect"), GameObject.Find("EnergySliderYellowEffect"));

        //Debug.Log("Initializing fullness_buff...");
        this.fullness_buff = new Buff(true, DEFAULT_BUFF_VALUE, GameObject.Find("FoodSliderGreenEffect"), GameObject.Find("FoodSliderYellowEffect"));

        //Debug.Log("Initializing fullness_debuff...");
        this.fullness_debuff = new Buff(false, DEFAULT_BUFF_VALUE, GameObject.Find("FoodSliderGreenEffect"), GameObject.Find("FoodSliderYellowEffect"));

        //Debug.Log("Initializing fun_buff...");
        this.fun_buff = new Buff(true, DEFAULT_BUFF_VALUE, GameObject.Find("FunSliderGreenEffect"), GameObject.Find("FunSliderYellowEffect"));

        //Debug.Log("Initializing fun_debuff...");
        this.fun_debuff = new Buff(false, DEFAULT_BUFF_VALUE, GameObject.Find("FunSliderGreenEffect"), GameObject.Find("FunSliderYellowEffect"));

        //Debug.Log("Initializing hygiene_buff...");
        this.hygiene_buff = new Buff(true, DEFAULT_BUFF_VALUE, GameObject.Find("HygieneSliderGreenEffect"), GameObject.Find("HygieneSliderYellowEffect"));

        //Debug.Log("Initializing hygiene_debuff...");
        this.hygiene_debuff = new Buff(false, DEFAULT_BUFF_VALUE, GameObject.Find("HygieneSliderGreenEffect"), GameObject.Find("HygieneSliderYellowEffect"));

        //Debug.Log("Initializing bladder_buff...");
        this.bladder_buff = new Buff(true, DEFAULT_BUFF_VALUE, GameObject.Find("BladderSliderGreenEffect"), GameObject.Find("BladderSliderYellowEffect"));

        //Debug.Log("Initializing bladder_debuff...");
        this.bladder_debuff = new Buff(false, DEFAULT_BUFF_VALUE, GameObject.Find("BladderSliderGreenEffect"), GameObject.Find("BladderSliderYellowEffect"));

        //Debug.Log("Initializing bond_buff...");
        this.bond_buff = new Buff(true, DEFAULT_BUFF_VALUE);

        //Debug.Log("Initializing bond_debuff...");
        this.bond_debuff = new Buff(false, DEFAULT_BUFF_VALUE);

        updateAllStatBuffVisualEffects();

        this.energy_slider   = GameObject.Find("energy_slider").GetComponent <Slider> ();
        this.fullness_slider = GameObject.Find("food_slider").GetComponent <Slider> ();
        this.hygiene_slider  = GameObject.Find("hygiene_slider").GetComponent <Slider> ();
        this.fun_slider      = GameObject.Find("fun_slider").GetComponent <Slider> ();
        this.bladder_slider  = GameObject.Find("bladder_slider").GetComponent <Slider> ();
        this.happy_indicator = GameObject.Find("HeartParticles").GetComponent <Renderer>();
        this.meow_sound      = GameObject.Find("meow_sound").GetComponent <AudioSource>();
    }
    public void RegisterAdoptionCenter(string name)
    {
        AdoptionCenter ac = new AdoptionCenter(name);

        adoptionCenters.Add(name, ac);
    }
示例#16
0
    public void RegisterAdoptionCenter(string name)
    {
        AdoptionCenter adoptionCenter = new AdoptionCenter(name);

        adoptionCenters.Add(adoptionCenter);
    }
    public static void Execute()
    {
        while (true)
        {
            string[] commandArgs = Console.ReadLine().Split(new string[] { " | " }, StringSplitOptions.RemoveEmptyEntries);
            string   command     = commandArgs[0];
            switch (command)
            {
            case "RegisterCastrationCenter":
                string centerName = commandArgs[1];
                castrationCenters.Add(new CastrationCenter(centerName));
                break;

            case "RegisterCleansingCenter":
                centerName = commandArgs[1];
                cleansingCenters.Add(new CleansingCenter(centerName));
                break;

            case "RegisterAdoptionCenter":
                centerName = commandArgs[1];
                adoptionCenters.Add(new AdoptionCenter(centerName));
                break;

            case "RegisterDog":
                IAnimal dog = null;
                try
                {
                    dog = AnimalFactory.CreateAnimal("Dog", commandArgs[1], commandArgs[2], commandArgs[3]);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    continue;
                }
                string adoadoptionCenterName = commandArgs[4];

                AdoptionCenter center = adoptionCenters.FirstOrDefault(c => c.Name == adoadoptionCenterName);

                center.AddAnimal(dog);

                break;

            case "RegisterCat":
                IAnimal cat = null;
                try
                {
                    cat = AnimalFactory.CreateAnimal("Cat", commandArgs[1], commandArgs[2], commandArgs[3]);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }

                adoadoptionCenterName = commandArgs[4];

                center = adoptionCenters.FirstOrDefault(c => c.Name == adoadoptionCenterName);

                center.AddAnimal(cat);
                break;

            case "SendForCleansing":
                adoadoptionCenterName = commandArgs[1];
                string cleansingCenterName = commandArgs[2];

                AdoptionCenter  adoadoptionCenter = adoptionCenters.FirstOrDefault(c => c.Name == adoadoptionCenterName);
                CleansingCenter cleansingCenter   = cleansingCenters.FirstOrDefault(c => c.Name == cleansingCenterName);

                cleansingCenter.AddAnimalsFromAdoptionCenter(adoadoptionCenter.SendForCleansing());
                break;

            case "SendForCastration":
                adoadoptionCenterName = commandArgs[1];
                string castrationCenterName = commandArgs[2];

                adoadoptionCenter = adoptionCenters.FirstOrDefault(c => c.Name == adoadoptionCenterName);

                CastrationCenter castrationCenter = castrationCenters.FirstOrDefault(c => c.Name == castrationCenterName);

                castrationCenter.AddAnimalsFromAdoptionCenter(adoadoptionCenter.SendForCastration());
                break;

            case "Cleanse":
                cleansingCenterName = commandArgs[1];
                cleansingCenter     = cleansingCenters.FirstOrDefault(c => c.Name == cleansingCenterName);

                var centerAndAnimals = cleansingCenter.Cleanse();

                foreach (var pair in centerAndAnimals)
                {
                    adoadoptionCenterName = pair.Key;
                    adoadoptionCenter     = adoptionCenters.FirstOrDefault(c => c.Name == adoadoptionCenterName);

                    adoadoptionCenter.AddAnimals(pair.Value);
                }
                break;

            case "Castrate":
                castrationCenterName = commandArgs[1];
                castrationCenter     = castrationCenters.FirstOrDefault(c => c.Name == castrationCenterName);

                centerAndAnimals = castrationCenter.Castrate();

                foreach (var pair in centerAndAnimals)
                {
                    adoadoptionCenterName = pair.Key;
                    adoadoptionCenter     = adoptionCenters.FirstOrDefault(c => c.Name == adoadoptionCenterName);

                    adoadoptionCenter.AddAnimals(pair.Value);
                }
                break;

            case "Adopt":
                adoadoptionCenterName = commandArgs[1];
                adoadoptionCenter     = adoptionCenters.FirstOrDefault(c => c.Name == adoadoptionCenterName);

                adoadoptionCenter.Adopt();
                break;

            case "CastrationStatistics":
                StringBuilder sb = new StringBuilder();

                sb.Append($"Paw Inc. Regular Castration Statistics{Environment.NewLine}");
                sb.Append($"Castration Centers: {castrationCenters.Count}{Environment.NewLine}");

                string castratedAnimals = CastrationCenter.CastratedAnimals.Count == 0 ? "None" : string.Join(", ", CastrationCenter.CastratedAnimals.OrderBy(a => a.Name));
                sb.Append($"Castrated Animals: {castratedAnimals}");

                Console.WriteLine(sb.ToString());
                break;

            case "Paw Paw Pawah":
                sb = new StringBuilder();
                sb.Append($"Paw Incorporative Regular Statistics{Environment.NewLine}");

                sb.Append($"Adoption Centers: {adoptionCenters.Count}{Environment.NewLine}");
                sb.Append($"Cleansing Centers: {cleansingCenters.Count}{Environment.NewLine}");

                string adoptedAnimals = AdoptionCenter.AdoptedAnimals.Count == 0 ? "None" : string.Join(", ", AdoptionCenter.AdoptedAnimals.OrderBy(a => a.Name));
                sb.Append($"Adopted Animals: {adoptedAnimals}{Environment.NewLine}");

                string cleansedAnimals = CleansingCenter.CleansedAnimals.Count == 0 ? "None" : string.Join(", ", CleansingCenter.CleansedAnimals.OrderBy(a => a.Name));
                sb.Append($"Cleansed Animals: {cleansedAnimals}{Environment.NewLine}");

                int amountOfAnimalsWaitingForAdoption = adoptionCenters.Sum(a => a.AnimalsAwaitingAdoption());
                sb.Append($"Animals Awaiting Adoption: {amountOfAnimalsWaitingForAdoption}{Environment.NewLine}");

                int amountOfAnimalsWaitingForCleansing = cleansingCenters.Sum(a => a.AnimalsAwaitingCleansing());
                sb.Append($"Animals Awaiting Cleansing: {amountOfAnimalsWaitingForCleansing}");

                Console.WriteLine(sb.ToString());
                return;
            }
        }
    }
示例#18
0
    public static void Start()
    {
        var    adoptet           = new List <string>();
        var    adoptetCentres    = new List <AdoptionCenter>();
        var    clinned           = new List <string>();
        var    clinnedCeneters   = new List <CleansingCenter>();
        var    castrationCenter  = new List <CastrationCenter>();
        var    castrationAnimals = new List <string>();
        string inputLine;

        while ((inputLine = Console.ReadLine()) != "Paw Paw Pawah")
        {
            var    command = inputLine.Split(new string[] { " | " }, StringSplitOptions.RemoveEmptyEntries);
            var    cmdArg  = command[0];
            string name    = null;
            if (command.Length > 1)
            {
                name = command[1];
            }
            switch (cmdArg)
            {
            case "RegisterCleansingCenter": var clining = new CleansingCenter(name);
                clinnedCeneters.Add(clining);
                break;

            case "RegisterAdoptionCenter": var adop = new AdoptionCenter(name);
                adoptetCentres.Add(adop);
                break;

            case "RegisterDog": var dog = new Dog(name, int.Parse(command[2]), int.Parse(command[3]), command[4]);
                adoptetCentres.First(n => n.Name == command[4]).AddAnimal(dog);
                break;

            case "RegisterCat":
                var cat = new Cat(name, int.Parse(command[2]), int.Parse(command[3]), command[4]);
                adoptetCentres.First(n => n.Name == command[4]).AddAnimal(cat);
                break;

            case "SendForCleansing":
                var forClining = adoptetCentres.First(c => c.Name == name);
                var cliniin    = clinnedCeneters.First(c => c.Name == command[2]);
                cliniin.AddForClining(forClining.Animals);
                break;

            case "Cleanse":
                var clin = clinnedCeneters.First(c => c.Name == name);
                foreach (var clinAnimal in clin.Animals)
                {
                    clinned.Add(clinAnimal.Name);
                }
                clin.CliningAnimal();
                break;

            case "Adopt":
                var adopt = adoptetCentres.FirstOrDefault(c => c.Name == name);
                if (adopt != null)
                {
                    foreach (var clinAnimal in adopt.Animals)
                    {
                        if (clinAnimal.Status)
                        {
                            adoptet.Add(clinAnimal.Name);
                        }
                    }
                }
                adopt.Adopt(adoptet);
                break;

            case "RegisterCastrationCenter": var center = new CastrationCenter(name);
                castrationCenter.Add(center);
                break;

            case "SendForCastration": var adoptetCenter = adoptetCentres.FirstOrDefault(c => c.Name == name);
                var centerCast = castrationCenter.FirstOrDefault(c => c.Name == command[2]);
                if (adoptetCenter != null && centerCast != null)
                {
                    centerCast.AddAnimalCastration(adoptetCenter.Animals);
                }
                break;

            case "Castrate": var cst = castrationCenter.First(c => c.Name == name);
                foreach (var cstAnimal in cst.Animals)
                {
                    castrationAnimals.Add(cstAnimal.Name);
                }
                cst.Castration();
                break;

            case "CastrationStatistics": var sbb = new StringBuilder();
                sbb.AppendLine($"Paw Inc. Regular Castration Statistics")
                .AppendLine($"Castration Centers: {castrationCenter.Count}");
                if (castrationAnimals.Count != 0)
                {
                    sbb.AppendLine($"Castrated Animals: {string.Join(", ", castrationAnimals.OrderBy(x => x))}");
                }
                else
                {
                    sbb.AppendLine($"Castrated Animals: None");
                }
                Console.WriteLine(sbb.ToString().Trim());
                break;
            }
        }

        var sb = new StringBuilder();

        sb.AppendLine($"Paw Incorporative Regular Statistics")
        .AppendLine($"Adoption Centers: {adoptetCentres.Count}")
        .AppendLine($"Cleansing Centers: {clinnedCeneters.Count}");
        if (adoptet.Count == 0)
        {
            sb.AppendLine($"Adopted Animals: None");
        }
        else
        {
            sb.AppendLine($"Adopted Animals: {string.Join(", ", adoptet.OrderBy(x => x))}");
        }
        if (clinned.Count == 0)
        {
            sb.AppendLine($"Cleansed Animals: None");
        }
        else
        {
            sb.AppendLine($"Cleansed Animals: {string.Join(", ", clinned.OrderBy(x=>x))}");
        }
        int count = 0;

        foreach (var VARIABLE in adoptetCentres.SelectMany(x => x.Animals))
        {
            if (VARIABLE.Status)
            {
                count++;
            }
        }
        sb.AppendLine($"Animals Awaiting Adoption: {count}");
        int coont = 0;

        foreach (var VARIABLE in clinnedCeneters.SelectMany(x => x.Animals))
        {
            if (!VARIABLE.Status)
            {
                coont++;
            }
        }
        sb.AppendLine($"Animals Awaiting Cleansing: {coont}");
        var result = sb.ToString().Trim();

        Console.WriteLine(result);
    }