Start() public method

public Start ( ) : void
return void
Ejemplo n.º 1
0
        public void AlignamentTest()
        {
            CharacterHealth health = FixtureCreateHealth("testchar");

            AttachEvents(health);
            ResetCallbacks();

            health.startingLives  = 2;
            health.maxLives       = 2;
            health.startingHealth = 2;
            health.maxHealth      = 2;
            health.alignment      = Alignment.Enemy;

            health.Start();

            CharacterHealth health2 = FixtureCreateHealth("testchar2");

            health2.startingLives  = 2;
            health2.maxLives       = 2;
            health2.startingHealth = 2;
            health2.maxHealth      = 2;
            health2.alignment      = Alignment.Enemy;
            Damage damage = health2.gameObject.AddComponent <Damage>();

            health2.Start();


            //------------------------------------------
            // DAMAGE NOT DEALT
            // cannot recieve damage from friends
            health.friendlyFire = false;
            ResetCallbacks();

            Assert.That(health.lives, Is.EqualTo(2));
            Assert.That(health.health, Is.EqualTo(2));

            health.Damage(damage);

            Assert.That(health.lives, Is.EqualTo(2));
            Assert.That(health.health, Is.EqualTo(2));

            Assert.That(onHealCalled, Is.EqualTo(false));
            Assert.That(onDamageCalled, Is.EqualTo(false));
            Assert.That(onImmunityCalled, Is.EqualTo(false));
            Assert.That(onMaxHealthCalled, Is.EqualTo(false));
            Assert.That(onInjuredCalled, Is.EqualTo(false));
            Assert.That(onHurtCalled, Is.EqualTo(false));
            Assert.That(onDeathCalled, Is.EqualTo(false));
            Assert.That(onGameOverCalled, Is.EqualTo(false));
            Assert.That(onInvulnerabilityStartCalled, Is.EqualTo(false));
            Assert.That(onRespawnCalled, Is.EqualTo(false));

            //------------------------------------------
            // DAMAGE NOT DEALT
            // can recieve damage but the damage is not meant for friends
            damage.friendlyFire = false;
            health.friendlyFire = true;

            health.Damage(damage);

            Assert.That(health.lives, Is.EqualTo(2));
            Assert.That(health.health, Is.EqualTo(2));

            Assert.That(onHealCalled, Is.EqualTo(false));
            Assert.That(onDamageCalled, Is.EqualTo(false));
            Assert.That(onImmunityCalled, Is.EqualTo(false));
            Assert.That(onMaxHealthCalled, Is.EqualTo(false));
            Assert.That(onInjuredCalled, Is.EqualTo(false));
            Assert.That(onHurtCalled, Is.EqualTo(false));
            Assert.That(onDeathCalled, Is.EqualTo(false));
            Assert.That(onGameOverCalled, Is.EqualTo(false));
            Assert.That(onInvulnerabilityStartCalled, Is.EqualTo(false));
            Assert.That(onRespawnCalled, Is.EqualTo(false));


            //------------------------------------------
            // DAMAGE DEALT
            // we can recieve damage from friends and damage is unfrienly!
            damage.friendlyFire = true;
            health.friendlyFire = true;

            Assert.That(health.lives, Is.EqualTo(2));
            Assert.That(health.health, Is.EqualTo(2));

            health.Damage(damage);

            Assert.That(health.lives, Is.EqualTo(2));
            Assert.That(health.health, Is.EqualTo(1));

            Assert.That(onHealCalled, Is.EqualTo(false));
            Assert.That(onDamageCalled, Is.EqualTo(true));
            Assert.That(onImmunityCalled, Is.EqualTo(false));
            Assert.That(onMaxHealthCalled, Is.EqualTo(false));
            Assert.That(onInjuredCalled, Is.EqualTo(true));
            Assert.That(onHurtCalled, Is.EqualTo(false));
            Assert.That(onDeathCalled, Is.EqualTo(false));
            Assert.That(onGameOverCalled, Is.EqualTo(false));
            Assert.That(onInvulnerabilityStartCalled, Is.EqualTo(true));
            Assert.That(onRespawnCalled, Is.EqualTo(false));
        }
        public void DamageTest()
        {
            FixtureCreateHealth();

            health.startingHealth = 2;
            health.maxHealth      = 2;

            health.Start();
            Assert.That(health.lives, Is.EqualTo(1));
            Assert.That(health.health, Is.EqualTo(2));
            Assert.That(health.IsInvulnerable(), Is.EqualTo(false));

            Assert.That(onHealCalled, Is.EqualTo(true));
            Assert.That(onDamageCalled, Is.EqualTo(false));
            Assert.That(onImmunityCalled, Is.EqualTo(false));
            Assert.That(onMaxHealthCalled, Is.EqualTo(true));
            Assert.That(onInjuredCalled, Is.EqualTo(false));
            Assert.That(onHurtCalled, Is.EqualTo(false));
            Assert.That(onDeathCalled, Is.EqualTo(false));
            Assert.That(onGameOverCalled, Is.EqualTo(false));
            Assert.That(onInvulnerabilityStartCalled, Is.EqualTo(false));
            Assert.That(onRespawnCalled, Is.EqualTo(false));

            ResetCallbacks();

            health.Damage(1, null);

            Assert.That(onHealCalled, Is.EqualTo(false));
            Assert.That(onDamageCalled, Is.EqualTo(true));
            Assert.That(onImmunityCalled, Is.EqualTo(false));
            Assert.That(onMaxHealthCalled, Is.EqualTo(false));
            Assert.That(onInjuredCalled, Is.EqualTo(true));
            Assert.That(onHurtCalled, Is.EqualTo(false));
            Assert.That(onDeathCalled, Is.EqualTo(false));
            Assert.That(onGameOverCalled, Is.EqualTo(false));
            Assert.That(onInvulnerabilityStartCalled, Is.EqualTo(true));
            Assert.That(onRespawnCalled, Is.EqualTo(false));

            // after recieve damage time to be invulnerable
            Assert.That(health.IsInvulnerable(), Is.EqualTo(true));

            ResetCallbacks();

            // TEST add time, wait until invulnerability ends
            umgr.forceFixedDeltaTime = 0.25f;
            umgr.FixedUpdate();
            Assert.That(health.IsInvulnerable(), Is.EqualTo(true));

            umgr.forceFixedDeltaTime = 2.0f;
            umgr.FixedUpdate();
            Assert.That(health.IsInvulnerable(), Is.EqualTo(false));
            Assert.That(onInvulnerabilityEndCalled, Is.EqualTo(true));

            ResetCallbacks();

            health.immunity = DamageType.Water;

            // TEST invulnerable to recieved damage
            var obj3       = new GameObject();
            var damage     = obj3.AddComponent <Damage>();
            var character2 = obj3.AddComponent <Character>();

            Assert.NotNull(damage);
            damage.type             = DamageType.Water;
            damage.causer           = character2.GetComponent <CharacterHealth>();
            damage.causer.alignment = Alignment.Enemy;

            health.Damage(damage);
            Assert.That(onHealCalled, Is.EqualTo(false));
            Assert.That(onDamageCalled, Is.EqualTo(true));
            Assert.That(onImmunityCalled, Is.EqualTo(true));
            Assert.That(onMaxHealthCalled, Is.EqualTo(false));
            Assert.That(onInjuredCalled, Is.EqualTo(false));
            Assert.That(onHurtCalled, Is.EqualTo(false));
            Assert.That(onDeathCalled, Is.EqualTo(false));
            Assert.That(onGameOverCalled, Is.EqualTo(false));
            Assert.That(onInvulnerabilityStartCalled, Is.EqualTo(false));
            Assert.That(onRespawnCalled, Is.EqualTo(false));

            ResetCallbacks();
            /// damage again, kill character

            health.Damage(1, null);
            Assert.That(onHealCalled, Is.EqualTo(false));
            Assert.That(onDamageCalled, Is.EqualTo(true));
            Assert.That(onImmunityCalled, Is.EqualTo(false));
            Assert.That(onMaxHealthCalled, Is.EqualTo(false));
            Assert.That(onInjuredCalled, Is.EqualTo(true));
            Assert.That(onHurtCalled, Is.EqualTo(false));
            Assert.That(onDeathCalled, Is.EqualTo(true));
            Assert.That(onGameOverCalled, Is.EqualTo(true));
            Assert.That(onInvulnerabilityStartCalled, Is.EqualTo(false));
            Assert.That(onRespawnCalled, Is.EqualTo(false));
        }
Ejemplo n.º 3
0
        public TestCharacter(string name)
        {
            charObj      = new GameObject();
            charObj.name = name;
            character    = charObj.AddComponent <Character>();
            Assert.NotNull(character);
            health = charObj.GetComponent <CharacterHealth>();
            Assert.NotNull(health);
            health.Start();

            GameObject enterGO = charObj.CreateChild("enterAreas");

            enterGO.AddComponent <BoxCollider2D>();
            enterHitBox = enterGO.AddComponent <HitBox>();
            enterHitBox.Reset();
            enterHitBox.type             = HitBoxType.EnterAreas;
            enterHitBox.gameObject.layer = 1;

            enterBox2D        = enterHitBox.gameObject.AddComponent <BoxCollider2D>();
            enterBox2D.size   = new Vector2(1, 1);
            enterHitBox.owner = health;
            enterHitBox.Start();

            GameObject dealGO = charObj.CreateChild("dealHitBox");

            dealGO.AddComponent <BoxCollider2D>();
            dealHitBox = dealGO.AddComponent <HitBox>();
            Assert.NotNull(dealHitBox);

            dealHitBox.type             = HitBoxType.DealDamage;
            dealHitBox.useGlobalMask    = false;
            dealHitBox.collisionMask    = (1 << 2); // | (1 << ?)
            dealHitBox.gameObject.layer = 2;
            damage        = dealHitBox.gameObject.AddComponent <Damage>();
            damage.causer = health;
            damage.Start();
            dealHitBox.owner = health;

            dealBox2D      = dealHitBox.gameObject.AddComponent <BoxCollider2D>();
            dealBox2D.size = new Vector2(1, 1);
            dealHitBox.Start();

            GameObject recieveGO = charObj.CreateChild("recieveHitBox");

            recieveGO.AddComponent <BoxCollider2D>();
            recieveHitBox = recieveGO.AddComponent <HitBox>();
            Assert.NotNull(recieveHitBox);

            recieveHitBox.type             = HitBoxType.RecieveDamage;
            recieveHitBox.useGlobalMask    = false;
            recieveHitBox.collisionMask    = (1 << 2);
            recieveHitBox.gameObject.layer = 2;
            recieveHitBox.owner            = health;

            recieveBox2D      = recieveHitBox.gameObject.AddComponent <BoxCollider2D>();
            recieveBox2D.size = new Vector2(1, 1);
            recieveHitBox.Start();

            // init health callbacks
            health.onHeal                 += () => { onHealCalled = true; };
            health.onDamage               += () => { onDamageCalled = true; };
            health.onImmunity             += () => { onImmunityCalled = true; };
            health.onMaxHealth            += () => { onMaxHealthCalled = true; };
            health.onInjured              += (Damage dt, CharacterHealth to) => { onInjuredCalled = true; };
            health.onHurt                 += (Damage dt, CharacterHealth to) => { onHurtCalled = true; };
            health.onDeath                += () => { onDeathCalled = true; };
            health.onGameOver             += () => { onGameOverCalled = true; };
            health.onInvulnerabilityStart += () => { onInvulnerabilityStartCalled = true; };
            health.onInvulnerabilityEnd   += () => { onInvulnerabilityEndCalled = true; };
            health.onRespawn              += () => { onRespawnCalled = true; };
        }