Example #1
0
        public MonsterPM(IGameMonster i_monster) : base(i_monster)
        {
            mMonster = i_monster;

            SetIdProperty();
            UpdateProperties();
        }
        private void CreateMonsterView(IGameMonster i_monster)
        {
            GameObject  monsterObject = gameObject.InstantiateUI(MonsterViewPrefab, gameObject);
            MonsterView monsterView   = monsterObject.GetComponent <MonsterView>();

            monsterView.Init(new MonsterPM(i_monster));
        }
Example #3
0
        public int GetDamageFromMonster(IGameMonster i_monster, IGamePlayer i_player)
        {
            int monsterAttack = i_monster.AttackPower;
            int playerDefense = i_player.GetDefenseForType(i_monster.AttackType);

            return(Mathf.Max(1, monsterAttack - playerDefense));
        }
Example #4
0
        private IGameMonster GetMockMonsterWithIsDead(bool i_isDead)
        {
            IGameMonster mockMonster = Substitute.For <IGameMonster>();

            mockMonster.IsDead().Returns(i_isDead);

            return(mockMonster);
        }
Example #5
0
        private IGameMonster GetMockMonsterWithMatchCombo(bool i_doesMatch)
        {
            IGameMonster mockMonster = Substitute.For <IGameMonster>();

            mockMonster.DoesMatchCombo(Arg.Any <List <IGamePiece> >()).Returns(i_doesMatch);

            return(mockMonster);
        }
        public void WhenAddingMonster_MonsterIsAddedToList()
        {
            MonsterWaveData systemUnderTest = new MonsterWaveData();
            IGameMonster    mockMonster     = Substitute.For <IGameMonster>();

            systemUnderTest.AddMonster(mockMonster);

            Assert.Contains(mockMonster, systemUnderTest.Monsters);
        }
Example #7
0
        public void WhenModelUpdated_IfMonsterIsDead_DestroyPropertyIsTrue()
        {
            IGameMonster mockMonster = Substitute.For <IGameMonster>();

            mockMonster.IsDead().Returns(false);
            MonsterPM systemUnderTest = new MonsterPM(mockMonster);

            mockMonster.IsDead().Returns(true);
            mockMonster.ModelUpdated += Raise.Event <ModelUpdateHandler>();
            Assert.AreEqual(true, systemUnderTest.ViewModel.GetPropertyValue <bool>(MonsterPM.DESTROY_PROPERTY));
        }
Example #8
0
        private IGameMonster GetMockMonsterWithComboLength(int i_length)
        {
            IGameMonster mockMonster = Substitute.For <IGameMonster>();

            mockMonster.AttackCombo = new List <int>();

            for (int i = 0; i < i_length; ++i)
            {
                mockMonster.AttackCombo.Add(i);
            }

            return(mockMonster);
        }
Example #9
0
        public void GetMaxLength_ReturnsLengthOfLongestCombo()
        {
            IGameMonster monster1 = GetMockMonsterWithComboLength(7);
            IGameMonster monster2 = GetMockMonsterWithComboLength(1);
            IGameMonster monster3 = GetMockMonsterWithComboLength(3);

            systemUnderTest.CurrentMonsters = new List <IGameMonster>()
            {
                monster1, monster2, monster3
            };

            Assert.AreEqual(7, systemUnderTest.GetLongestCombo());
        }
Example #10
0
        public void FillCurrentMonstersFromRemainingMonsters()
        {
            int monstersToAdd = GetNumberOfMissingCurrentMonsters();

            for (int i = 0; i < monstersToAdd; ++i)
            {
                if (RemainingMonsters.Count > 0)
                {
                    IGameMonster monsterToAdd = RemainingMonsters[0];
                    CurrentMonsters.Add(monsterToAdd);
                    RemainingMonsters.RemoveAt(0);
                }
            }
        }
Example #11
0
        public void GetDamageFromMonster_ReturnsAsExpected(int i_monsterAttack, int i_playerDefenseForType, int i_expectedDamage)
        {
            IGameMonster mockMonster = Substitute.For <IGameMonster>();

            mockMonster.AttackPower.Returns(i_monsterAttack);

            IGamePlayer mockPlayer = Substitute.For <IGamePlayer>();

            mockPlayer.GetDefenseForType(Arg.Any <int>()).Returns(i_playerDefenseForType);

            DamageCalculator systemUnderTest = new DamageCalculator();

            int damageTaken = systemUnderTest.GetDamageFromMonster(mockMonster, mockPlayer);

            Assert.AreEqual(i_expectedDamage, damageTaken);
        }
Example #12
0
        public void WhenModelUpdated_PropertiesAsExpected()
        {
            IGameMonster mockMonster = Substitute.For <IGameMonster>();

            mockMonster.RemainingHP = 100;
            mockMonster.GetAttackProgress().Returns(.1f);
            MonsterPM systemUnderTest = new MonsterPM(mockMonster);

            Assert.AreEqual(100, systemUnderTest.ViewModel.GetPropertyValue <int>(MonsterPM.HP_PROPERTY));
            Assert.AreEqual(.1f, systemUnderTest.ViewModel.GetPropertyValue <float>(MonsterPM.ATTACK_PROGRESS_PROPERTY));

            mockMonster.RemainingHP = 50;
            mockMonster.GetAttackProgress().Returns(.2f);
            mockMonster.ModelUpdated += Raise.Event <ModelUpdateHandler>();
            Assert.AreEqual(50, systemUnderTest.ViewModel.GetPropertyValue <int>(MonsterPM.HP_PROPERTY));
            Assert.AreEqual(.2f, systemUnderTest.ViewModel.GetPropertyValue <float>(MonsterPM.ATTACK_PROGRESS_PROPERTY));
        }
Example #13
0
        public void DeadMonstersGetRemovedFromCurrentList()
        {
            IGameMonster        mock1 = GetMockMonsterWithIsDead(true);
            IGameMonster        mock2 = GetMockMonsterWithIsDead(false);
            IGameMonster        mock3 = GetMockMonsterWithIsDead(false);
            IGameMonster        mock4 = GetMockMonsterWithIsDead(true);
            List <IGameMonster> mockCurrentMonsters = new List <IGameMonster>()
            {
                mock1, mock2, mock3, mock4
            };

            systemUnderTest.CurrentMonsters = mockCurrentMonsters;

            systemUnderTest.RemoveDeadMonstersFromCurrentList();

            Assert.AreEqual(2, systemUnderTest.CurrentMonsters.Count);
            Assert.Contains(mock2, systemUnderTest.CurrentMonsters);
            Assert.Contains(mock3, systemUnderTest.CurrentMonsters);
        }
Example #14
0
        public void WhenCreating_PropertiesSetAsExpected()
        {
            List <int> mockAttackCombo = new List <int>()
            {
                1, 2, 3
            };
            IGameMonster mockMonster = Substitute.For <IGameMonster>();

            mockMonster.Id.Returns("Blob");
            mockMonster.RemainingHP = 100;
            mockMonster.GetAttackProgress().Returns(.1f);
            mockMonster.AttackCombo = mockAttackCombo;

            MonsterPM systemUnderTest = new MonsterPM(mockMonster);

            Assert.AreEqual("Blob", systemUnderTest.ViewModel.GetPropertyValue <string>(MonsterPM.ID_PROPERTY));
            Assert.AreEqual(100, systemUnderTest.ViewModel.GetPropertyValue <int>(MonsterPM.HP_PROPERTY));
            Assert.AreEqual(.1f, systemUnderTest.ViewModel.GetPropertyValue <float>(MonsterPM.ATTACK_PROGRESS_PROPERTY));
            Assert.AreEqual(mockAttackCombo, systemUnderTest.AttackCombo);
            Assert.AreEqual(false, systemUnderTest.ViewModel.GetPropertyValue <bool>(MonsterPM.DESTROY_PROPERTY));
        }
Example #15
0
        public void OnAttacked(IGameMonster i_monster)
        {
            int damageTaken = mDamageCalculator.GetDamageFromMonster(i_monster, this);

            AlterHP(-damageTaken);
        }
Example #16
0
 public void AddMonster(IGameMonster i_monster)
 {
     mMonsters.Add(i_monster);
 }