Esempio n. 1
0
        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));
        }
Esempio n. 3
0
        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));
        }