public void TestAddBonus() { FluidStat stat = new FluidStat(15); Assert.AreEqual(15, stat.Base); Assert.AreEqual(15, stat.Max); Assert.AreEqual(15, stat.Current); stat.AddBonus(BonusType.Drain, 2); Assert.AreEqual(15, stat.Base); Assert.AreEqual(17, stat.Max); Assert.AreEqual(15, stat.Current); stat.AddBonus(BonusType.Drain, 0); Assert.AreEqual(15, stat.Base); Assert.AreEqual(17, stat.Max); Assert.AreEqual(15, stat.Current); stat.AddBonus(BonusType.Drain, -4); Assert.AreEqual(15, stat.Base); Assert.AreEqual(13, stat.Max); Assert.AreEqual(13, stat.Current); }
public void TestIsMax() { FluidStat stat = new FluidStat(10); Assert.IsTrue(stat.IsMax); // lower stat.Current -= 2; Assert.IsFalse(stat.IsMax); // restore stat.Current = stat.Max; Assert.IsTrue(stat.IsMax); // add a bonus stat.AddBonus(BonusType.Haste, 5); Assert.IsFalse(stat.IsMax); // restore stat.Current = stat.Max; Assert.IsTrue(stat.IsMax); }
public void TestRestore() { FluidStat stat = new FluidStat(15); Assert.AreEqual(15, stat.Base); Assert.AreEqual(15, stat.Max); Assert.AreEqual(15, stat.Current); stat.AddBonus(BonusType.Drain, -2); Assert.AreEqual(15, stat.Base); Assert.AreEqual(13, stat.Max); Assert.AreEqual(13, stat.Current); bool restored = stat.Restore(); Assert.IsTrue(restored); Assert.AreEqual(15, stat.Base); Assert.AreEqual(15, stat.Max); Assert.AreEqual(13, stat.Current); restored = stat.Restore(); Assert.IsFalse(restored); }
public void TestChangedEvent() { FluidStat stat = new FluidStat(15); stat.Changed += Stat_Changed; // set to same base stat.Base = 15; AssertNoChangedReceived(); // set to different base stat.Base = 13; AssertChangedReceived(); // set to same current stat.Current = 13; AssertNoChangedReceived(); // set to same current (clamped) stat.Current = 25; AssertNoChangedReceived(); // set to different current stat.Current = 8; AssertChangedReceived(); // set no bonus stat.SetBonus(BonusType.Haste, 0); AssertNoChangedReceived(); // set a bonus stat.SetBonus(BonusType.Haste, 3); AssertChangedReceived(); // set no bonus stat.SetBonus(BonusType.Haste, 3); AssertNoChangedReceived(); // add no bonus stat.AddBonus(BonusType.Haste, 0); AssertNoChangedReceived(); // add a bonus stat.AddBonus(BonusType.Haste, 3); AssertChangedReceived(); // drain stat.AddBonus(BonusType.Drain, -3); AssertChangedReceived(); // restore stat.Restore(); AssertChangedReceived(); // restore when not needed stat.Restore(); AssertNoChangedReceived(); stat.Changed -= Stat_Changed; // set to different value after unregistering stat.Base = 17; AssertNoChangedReceived(); }