public void TestSteadyHandTurns() { State details = new State(); Assert.AreEqual <uint>(0, SteadyHand.GetTurnsRemaining(details)); for (int i = 5; i >= 0; --i) { SteadyHand.SetTurnsRemaining(details, (uint)i); Assert.AreEqual <uint>((uint)i, SteadyHand.GetTurnsRemaining(details)); } }
public void TestSteadyHand() { SteadyHand sh = new SteadyHand(); HastyTouch ht = new HastyTouch(); State state = Utility.CreateDefaultState(); state.Control = 10; state.MaxDurability = 100; state.Durability = 100; state.MaxProgress = 127; // Make sure we can actually use SH Assert.IsTrue(sh.CanUse(state)); State afterSH = sh.Activate(state, true); // Make sure Steady Hand uses the right amount of TP. Assert.AreEqual <uint>(state.CP - sh.RequiredCP, afterSH.CP); // Test that the buff is up, and is active for the correct number of turns. Assert.AreEqual <uint>(sh.Duration, SteadyHand.GetTurnsRemaining(afterSH)); // Use Basic Synthesis 5 times, and make sure the success bonus decreases. for (int i = 5; i > 0; --i) { Assert.AreEqual <uint>((uint)i, SteadyHand.GetTurnsRemaining(afterSH)); Assert.IsTrue(Compute.SuccessRate(ht.BaseSuccessRate, afterSH) > Compute.SuccessRate(ht.BaseSuccessRate, state)); // Make sure we can't use SH while SH is up. Assert.IsFalse(sh.CanUse(afterSH)); afterSH = ht.Activate(afterSH, true); } Assert.AreEqual <uint>(0, SteadyHand.GetTurnsRemaining(afterSH)); Assert.AreEqual <double>(Compute.SuccessRate(sh.BaseSuccessRate, state), Compute.SuccessRate(sh.BaseSuccessRate, afterSH)); }
public void TestMultipleStatAssignment2() { State details = new State(); details.CrafterLevel = 13U; details.SynthLevel = 40U; details.Quality = 1215U; details.MaxQuality = 923U; details.Condition = Engine.Condition.Excellent; Manipulation.SetTurnsRemaining(details, 2); GreatStrides.SetTurnsRemaining(details, 3); Ingenuity.SetTurnsRemaining(details, 1); SteadyHand.SetTurnsRemaining(details, 4); Assert.AreEqual <uint>(13, details.CrafterLevel); Assert.AreEqual <uint>(40, details.SynthLevel); Assert.AreEqual <uint>(1215, details.Quality); Assert.AreEqual <uint>(923, details.MaxQuality); Assert.AreEqual <Engine.Condition>(Engine.Condition.Excellent, details.Condition); Assert.AreEqual <uint>(2, Manipulation.GetTurnsRemaining(details)); Assert.AreEqual <uint>(3, GreatStrides.GetTurnsRemaining(details)); Assert.AreEqual <uint>(1, Ingenuity.GetTurnsRemaining(details)); Assert.AreEqual <uint>(4, SteadyHand.GetTurnsRemaining(details)); }