Ejemplo n.º 1
0
        public void TestInnerQuiet()
        {
            InnerQuiet     iq = new InnerQuiet();
            BasicTouch     bt = new BasicTouch();
            BasicSynthesis bs = new BasicSynthesis();

            State state = Utility.CreateDefaultState();

            state.MaxQuality = 1500;
            state.Quality    = 0;

            State afteriq = iq.Activate(state, true);

            Assert.IsTrue(afteriq.InnerQuietIsActive);
            Assert.AreEqual <uint>(0, afteriq.InnerQuietStacks);

            State afterbt = bt.Activate(afteriq, true);

            Assert.AreEqual <uint>(1, afterbt.InnerQuietStacks);
            Assert.IsTrue(Compute.Control(afterbt) > Compute.Control(afteriq));
            Assert.IsTrue(Compute.Quality(afterbt, 100) > Compute.Quality(afteriq, 100));

            State afterbs = bs.Activate(afterbt, true);

            Assert.AreEqual <uint>(1, afterbs.InnerQuietStacks);
            Assert.AreEqual <uint>(Compute.Control(afterbt), Compute.Control(afterbs));
            Assert.AreEqual <uint>(Compute.Quality(afterbt, 100), Compute.Quality(afterbs, 100));
        }
Ejemplo n.º 2
0
        public void TestBasicTouch()
        {
            BasicTouch action = new BasicTouch();

            State state = Utility.CreateDefaultState();

            // Test that if not enough CP, we can't use it
            TestBlocks.TestCannotUseWithCP(action, state, 0);

            State success = action.Activate(state, true);
            State failure = action.Activate(state, false);

            // Test that it uses the correct amount of CP
            Assert.AreEqual <uint>(state.CP - action.RequiredCP, success.CP);
            Assert.AreEqual <uint>(state.CP - action.RequiredCP, failure.CP);

            // Test that it uses the correct amount of durability.
            Assert.AreEqual <uint>(state.Durability - action.BaseDurability, success.Durability);
            Assert.AreEqual <uint>(state.Durability - action.BaseDurability, failure.Durability);

            // Test that failure does not increase quality, but success does.
            Assert.AreEqual <uint>(state.Quality, failure.Quality);
            Assert.AreEqual <uint>(state.Quality + Compute.Quality(state, action.BaseEfficiency), success.Quality);

            // Test that nothing changed except durability, quality, CP, and condition.
            success.Condition  = failure.Condition = state.Condition;
            success.Durability = failure.Durability = state.Durability;
            success.Quality    = failure.Quality = state.Quality;
            success.CP         = failure.CP = state.CP;
            Assert.AreEqual <State>(state, success);
            Assert.AreEqual <State>(state, failure);
        }
Ejemplo n.º 3
0
        public void TestGreatStridesRemovedImmediatelyOnTouch()
        {
            GreatStrides greatStrides = new GreatStrides();
            BasicTouch   basicTouch   = new BasicTouch();

            State state = Utility.CreateDefaultState();

            state.Quality       = 142;
            state.MaxQuality    = 726;
            state.Progress      = 0;
            state.MaxProgress   = 100;
            state.Durability    = 20;
            state.MaxDurability = 40;
            state.CrafterLevel  = 16;
            state.SynthLevel    = 13;
            state.Craftsmanship = 105;
            state.Control       = 102;
            state.Condition     = Condition.Normal;
            state.CP            = 55;
            state.MaxCP         = 233;

            Assert.IsTrue(greatStrides.CanUse(state));

            state = greatStrides.Activate(state, true);
            Assert.AreEqual <uint>(3U, GreatStrides.GetTurnsRemaining(state));
            state = basicTouch.Activate(state, true);
            Assert.AreEqual <uint>(0U, GreatStrides.GetTurnsRemaining(state));
        }
Ejemplo n.º 4
0
        public void TestBasicTouchPreferredOverTricksOfTheTradeWithHighDurability2()
        {
            Simulator.Engine.Ability tott       = new TricksOfTheTrade();
            Simulator.Engine.Ability basicTouch = new BasicTouch();
            Simulator.Engine.Ability steadyHand = new SteadyHand();

            State state = new State();

            state.Condition     = Simulator.Engine.Condition.Good;
            state.Control       = 119;
            state.Craftsmanship = 131;
            state.CP            = 254;
            state.MaxCP         = 254;
            state.MaxDurability = 70;
            state.Durability    = 70;
            state.MaxProgress   = 74;
            state.Quality       = 284;
            state.MaxQuality    = 1053;
            state.SynthLevel    = 20;
            state.CrafterLevel  = 19;

            state = steadyHand.Activate(state, true);
            State tottState = tott.Activate(state, true);

            tottState.Condition = Condition.Normal;

            State basicTouchState = basicTouch.Activate(state, true);

            basicTouchState.Condition = Condition.Normal;

            Assert.IsTrue(basicTouchState.Score > tottState.Score);
        }
Ejemplo n.º 5
0
 // Construct the CarpenterActions list.
 public CarpenterActions()
 {
     ResourceLibrary = new ResourceLibrary(Settings.ResourceLocation, ClassJobType.Carpenter);
     BasicSynthesis = new BasicSynthesis(CraftActionId.crp_BasicSynthesis,
         ResourceLibrary.ClassSkillImages["crp_BasicSynthesis"]);
     StandardSynthesis = new StandardSynthesis(CraftActionId.crp_StandardSynthesis,
         ResourceLibrary.ClassSkillImages["crp_StandardSynthesis"]);
     BasicTouch = new BasicTouch(CraftActionId.crp_BasicTouch, ResourceLibrary.ClassSkillImages["crp_BasicTouch"]);
     StandardTouch = new StandardTouch(CraftActionId.crp_StandardTouch,
         ResourceLibrary.ClassSkillImages["crp_StandardTouch"]);
     AdvancedTouch = new AdvancedTouch(CraftActionId.crp_AdvancedTouch,
         ResourceLibrary.ClassSkillImages["crp_AdvancedTouch"]);
     PreciseTouch = new PreciseTouch(CraftActionId.crp_PreciseTouch,
         ResourceLibrary.ClassSkillImages["crp_PreciseTouch"]);
     MastersMend = new MastersMend(CraftActionId.crp_MastersMend);
     MastersMendII = new MastersMendII(CraftActionId.crp_MastersMendII);
     SteadyHand = new SteadyHand(CraftActionId.crp_SteadyHand);
     InnerQuiet = new InnerQuiet(CraftActionId.crp_InnerQuiet);
     GreatStrides = new GreatStrides(CraftActionId.crp_GreatStrides);
     Observe = new Observe(CraftActionId.crp_Observe);
     CollectableSynthesis = new CollectableSynthesis(CraftActionId.crp_CollectableSynthesis);
     ByregotsBrow = new ByregotsBrow(CraftActionId.crp_ByregotsBrow);
     InnovativeTouch = new InnovativeTouch(CraftActionId.crp_InnovativeTouch);
     ByregotsMiracle = new ByregotsMiracle(CraftActionId.crp_ByregotsMiracle);
     NymeiasWheel = new NymeiasWheel(CraftActionId.crp_NymeiasWheel);
     TrainedHand = new TrainedHand(CraftActionId.crp_TrainedHand);
     Satisfaction = new Satisfaction(CraftActionId.crp_Satisfaction);
     Heart = new Heart(CraftActionId.crp_Heart);
     WhistleWhileYouWork = new WhistleWhileYouWork(CraftActionId.crp_WhistleWhileYouWork);
     PHTouch = new PHTouch(CraftActionId.crp_PreciseTouch);
 }
Ejemplo n.º 6
0
        public void TestManipulationWithTouchDoesntChangeDurability()
        {
            Manipulation manipulation = new Manipulation();
            BasicTouch   touch        = new BasicTouch();

            State state = Utility.CreateDefaultState();

            state.Durability = 20;
            State s2 = manipulation.Activate(state, true);

            Assert.AreEqual <uint>(20, s2.Durability);
            Assert.AreEqual(SynthesisStatus.IN_PROGRESS, s2.Status);

            s2 = touch.Activate(s2, true);
            Assert.AreEqual <uint>(20, s2.Durability);
            Assert.AreEqual(SynthesisStatus.IN_PROGRESS, s2.Status);
        }
Ejemplo n.º 7
0
        public void TestSubsequentAbilitiesStillTickAfterOneWearsOff()
        {
            Manipulation manipulation = new Manipulation();
            GreatStrides strides      = new GreatStrides();
            BasicTouch   touch        = new BasicTouch();

            State state = Utility.CreateDefaultState();

            state.Durability = 20;
            State s2 = strides.Activate(state, true);

            s2 = manipulation.Activate(s2, true);

            GreatStrides.SetTurnsRemaining(s2, 1);

            s2 = touch.Activate(s2, true);
            // Make sure Manipulation still ticked even though great strides wore off.
            Assert.AreEqual <uint>(20, s2.Durability);
        }