void Start()
    {
        // Pet Manager
        m_PetsManager = GetComponent <PetsManager>();

        // Player
        m_Player      = GameObject.FindGameObjectWithTag("Player").GetComponent <Player2D_Manager>().gameObject;
        m_PlayerStats = GameObject.FindGameObjectWithTag("Player").GetComponent <Player2D_StatsHolder>();
        m_PetsManager.SetPlayer(m_Player);
        m_PetsManager.SetPlayerStats(m_PlayerStats);

        // Pet Variables from Pets Manager
        m_PetsManager.GetPetDestination().Set(0, 0, 0);
        m_PetsManager.SetPetDestination(m_PetsManager.GetPetDestination());
        m_PetsManager.SetDistanceApart(0f);
        m_PetsManager.SetGuardRange(0f);
        m_PetsManager.SetFollowRange(0f);
        m_PetsManager.SetHealRange(0f);

        // StateMachine
        m_StateMachine = new StateMachine();
        m_PetsManager.SetStateMachine(m_StateMachine);
        m_PetsManager.GetStateMachine().AddState(new StateDeerGuard("StateDeerGuard", gameObject));
        m_PetsManager.GetStateMachine().AddState(new StateDeerFollow("StateDeerFollow", gameObject));
        m_PetsManager.GetStateMachine().AddState(new StateDeerTeleport("StateDeerTeleport", gameObject));
        m_PetsManager.GetStateMachine().AddState(new StateDeerHeal("StateDeerHeal", gameObject));
        m_PetsManager.GetStateMachine().SetNextState("StateDeerGuard");

        m_PetsManager.EXPReward = m_PetsManager.EXPRewardScaling * m_PetsManager.Level;
        m_PetsManager.Init();
    }
Beispiel #2
0
        public void Test_GetPetsByPersonGender()
        {
            var personAndPets = new Person[]
            {
                new Person
                {
                    Name   = "Bob",
                    Gender = Entities.Gender.Male,
                    Age    = 23,
                    Pets   = new List <Pet>
                    {
                        new Pet
                        {
                            Name = "Garfield",
                            Type = Entities.PetType.Cat
                        },
                        new Pet
                        {
                            Name = "Fido",
                            Type = Entities.PetType.Dog
                        }
                    }
                },
                new Person
                {
                    Name   = "Jennifer",
                    Gender = Entities.Gender.Female,
                    Age    = 18,
                    Pets   = new List <Pet>
                    {
                        new Pet
                        {
                            Name = "Garfield",
                            Type = Entities.PetType.Cat
                        }
                    }
                },
                new Person
                {
                    Name   = "Steve",
                    Gender = Entities.Gender.Male,
                    Age    = 45,
                    Pets   = null
                },
                new Person
                {
                    Name   = "Fred",
                    Gender = Entities.Gender.Male,
                    Age    = 40,
                    Pets   = new List <Pet>
                    {
                        new Pet
                        {
                            Name = "Tom",
                            Type = Entities.PetType.Cat
                        },
                        new Pet
                        {
                            Name = "Max",
                            Type = Entities.PetType.Cat
                        },
                        new Pet
                        {
                            Name = "Sam",
                            Type = Entities.PetType.Dog
                        },
                        new Pet
                        {
                            Name = "Jim",
                            Type = Entities.PetType.Cat
                        }
                    }
                },
                new Person
                {
                    Name   = "Samantha",
                    Gender = Entities.Gender.Female,
                    Age    = 40,
                    Pets   = new List <Pet>
                    {
                        new Pet
                        {
                            Name = "Tabby",
                            Type = Entities.PetType.Cat
                        }
                    }
                },
                new Person
                {
                    Name   = "Alice",
                    Gender = Entities.Gender.Female,
                    Age    = 64,
                    Pets   = new List <Pet>
                    {
                        new Pet
                        {
                            Name = "Simba",
                            Type = Entities.PetType.Cat
                        },
                        new Pet
                        {
                            Name = "Nemo",
                            Type = Entities.PetType.Fish
                        }
                    }
                },
            };

            //Use NSubstitue to mock the repository layer
            var petsRepository = Substitute.For <IPetsRepository>();

            petsRepository.GetPersonAndPets().Returns(personAndPets);

            var mapperService = new MapperService();

            //Create PetsManager instance
            IPetsManager petsManager = new PetsManager(petsRepository, mapperService);

            //Call method to be tested. This method contains the business logic.
            var catsByPersonGender = petsManager.GetPetsByPersonGender(Models.PetType.Cat).Result;

            //Check that there are 2 genders in the collection
            Assert.True(catsByPersonGender.PetsByPersonGender.Count == 2);

            //Check Cats belonging to Male persons - alphabetically ordered
            Assert.True(catsByPersonGender.PetsByPersonGender.First().Gender == Models.Gender.Male);
            Assert.True(catsByPersonGender.PetsByPersonGender.First().Pets.Count() == 4);
            Assert.True(catsByPersonGender.PetsByPersonGender.First().Pets.ElementAt(0).Name == "Garfield");
            Assert.True(catsByPersonGender.PetsByPersonGender.First().Pets.ElementAt(1).Name == "Jim");
            Assert.True(catsByPersonGender.PetsByPersonGender.First().Pets.ElementAt(2).Name == "Max");
            Assert.True(catsByPersonGender.PetsByPersonGender.First().Pets.ElementAt(3).Name == "Tom");

            //Check Cats belonging to Female persons - alphabetically ordered
            Assert.True(catsByPersonGender.PetsByPersonGender.Last().Gender == Models.Gender.Female);
            Assert.True(catsByPersonGender.PetsByPersonGender.Last().Pets.Count() == 3);
            Assert.True(catsByPersonGender.PetsByPersonGender.Last().Pets.ElementAt(0).Name == "Garfield");
            Assert.True(catsByPersonGender.PetsByPersonGender.Last().Pets.ElementAt(1).Name == "Simba");
            Assert.True(catsByPersonGender.PetsByPersonGender.Last().Pets.ElementAt(2).Name == "Tabby");
        }
Beispiel #3
0
 public StateDeerTeleport(string _stateID, GameObject _go)
 {
     m_StateID     = _stateID;
     m_go          = _go;
     m_PetsManager = _go.GetComponent <PetsManager>();
 }
        public void Test_GetPetsByPersonGender()
        {
            var personAndPets = new Person[]
            {
                new Person
                {
                    name   = "Bob",
                    gender = Gender.Male,
                    age    = 23,
                    pets   = new List <Pet>
                    {
                        new Pet
                        {
                            name = "Garfield",
                            type = PetType.Cat
                        },
                        new Pet
                        {
                            name = "Fido",
                            type = PetType.Dog
                        }
                    }
                },
                new Person
                {
                    name   = "Jennifer",
                    gender = Gender.Female,
                    age    = 18,
                    pets   = new List <Pet>
                    {
                        new Pet
                        {
                            name = "Garfield",
                            type = PetType.Cat
                        }
                    }
                },
                new Person
                {
                    name   = "Steve",
                    gender = Gender.Male,
                    age    = 45,
                    pets   = null
                },
                new Person
                {
                    name   = "Fred",
                    gender = Gender.Male,
                    age    = 40,
                    pets   = new List <Pet>
                    {
                        new Pet
                        {
                            name = "Tom",
                            type = PetType.Cat
                        },
                        new Pet
                        {
                            name = "Max",
                            type = PetType.Cat
                        },
                        new Pet
                        {
                            name = "Sam",
                            type = PetType.Dog
                        },
                        new Pet
                        {
                            name = "Jim",
                            type = PetType.Cat
                        }
                    }
                },
                new Person
                {
                    name   = "Samantha",
                    gender = Gender.Female,
                    age    = 40,
                    pets   = new List <Pet>
                    {
                        new Pet
                        {
                            name = "Tabby",
                            type = PetType.Cat
                        }
                    }
                },
                new Person
                {
                    name   = "Alice",
                    gender = Gender.Female,
                    age    = 64,
                    pets   = new List <Pet>
                    {
                        new Pet
                        {
                            name = "Simba",
                            type = PetType.Cat
                        },
                        new Pet
                        {
                            name = "Nemo",
                            type = PetType.Fish
                        }
                    }
                },
            };

            //Use NSubstitue to mock the repository layer
            var petsRepository = Substitute.For <IPetsRepository>();

            petsRepository.GetPersonAndPets().Returns(personAndPets);

            //Create PetsManager instance
            IPetsManager petsManager = new PetsManager(petsRepository);

            //Call method to be tested. This method contains the business logic.
            var catsByPersonGender = petsManager.GetPetsByPersonGender(PetType.Cat).Result;

            //Check that there are 2 genders in the collection
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.Count == 2);

            //Check Cats belonging to Male persons
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.First().Gender == Gender.Male);
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.First().Pets.Count() == 4);
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.First().Pets.Count(p => p.name == "Garfield") == 1);
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.First().Pets.Count(p => p.name == "Tom") == 1);
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.First().Pets.Count(p => p.name == "Max") == 1);
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.First().Pets.Count(p => p.name == "Jim") == 1);

            //Check Cats belonging to Female persons
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.Last().Gender == Gender.Female);
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.Last().Pets.Count() == 3);
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.Last().Pets.Count(p => p.name == "Garfield") == 1);
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.Last().Pets.Count(p => p.name == "Simba") == 1);
            Assert.IsTrue(catsByPersonGender.PetsByPersonGender.Last().Pets.Count(p => p.name == "Tabby") == 1);
        }