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)); }
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; }; }