Ejemplo n.º 1
0
        public void TestForReaction()
        {
            AlchemyEngine engine = new AlchemyEngine();

            var elements1 = engine.GetUsableElements();

            Assert.AreEqual(elements1.Count(), 4);

            var water = elements1.Where(_ => _.Name == "Water").First();
            var fire  = elements1.Where(_ => _.Name == "Fire").First();

            var steam1 = engine.TestForReaction(water, fire);

            Assert.AreEqual(steam1.Name, "Steam");

            var elements2 = engine.GetUsableElements();

            Assert.AreEqual(elements2.Count(), 5);

            var steam2 = engine.TestForReaction(water, fire);

            Assert.AreEqual(steam2.Name, "Steam");

            var elements3 = engine.GetUsableElements();

            Assert.AreEqual(elements3.Count(), 5);
        }
Ejemplo n.º 2
0
        void mcc_MoveCompleted(object sender, EventArgs e)
        {
            var element   = sender as MovableContentControl;
            var reactWith = element.IntersectWith();

            if (reactWith.Count() > 1)
            {
                var e1 = reactWith.First();
                var e2 = reactWith.Skip(1).Take(1).First();

                var reaction = _engine.TestForReaction(e1.Content as AlchemyElement, e2.Content as AlchemyElement);
                if (reaction != null)
                {
                    double left = Canvas.GetLeft(e1);
                    double top  = Canvas.GetTop(e1);

                    gameSurface.Children.Remove(e1);
                    gameSurface.Children.Remove(e2);

                    var mcc = AddAlchemyElementToGameSurface(reaction);
                    Canvas.SetLeft(mcc, left);
                    Canvas.SetTop(mcc, top);
                }
            }
        }