Exemple #1
0
        /// <summary>
        /// Creates a carousel card with an image and Uri options (up to 3 options)
        /// </summary>
        /// <param name="options"></param>
        /// <param name="imageUri"></param>
        /// <param name="cardText"></param>
        /// <param name="cardTitle"></param>
        /// <returns></returns>
        public CarouselCard CreateCarouselCard(Dictionary <string, Uri> options, string cardText, string cardTitle = "", Uri imageUri = null)
        {
            var body        = GenerateBody(imageUri, cardText, cardTitle);
            var cardOptions = new List <CardOption>();

            foreach (var option in options)
            {
                var item = new CardOption(option.Key, option.Value);
                cardOptions.Add(item);
            }
            return(new CarouselCard(body, cardOptions));
        }
Exemple #2
0
        public void DeploymentOptions()
        {
            var engine = new Engine();
            var logger = new Logger(engine);
            var manage = new Manage(engine);

            var player = engine.Chiefs[0];
            var enemy  = engine.Chiefs[1];

            var HQ     = player.Cards.Factory.CreateDefaultHq <HqStrike>();        // increase = 4
            var Light  = player.Cards.Factory.Create <TankLight>();                // cost = 2
            var Spatg  = player.Cards.Factory.Create <TankSpatg>();                // cost = 2
            var Medium = player.Cards.Factory.Create <TankMedium>();               // cost = 4
            var Heavy  = player.Cards.Factory.Create <TankHeavy>();                // cost = 6
            var Spg    = player.Cards.Factory.Create <TankSpg>();                  // cost = 0
            var medic  = player.Cards.Factory.Create <PlatoonProtectIntendancy>(); // cost = 1

            var hisSpg = enemy.Cards.Factory.Create <TankSpg>();                   // cost = 0, enemy

            manage.SetResources(player, 2);

            manage.Draw(Light);             // good
            manage.Draw(medic);             // good
            manage.Draw(Heavy);             // too expensive
            manage.Draw(hisSpg);            // enemies

            manage.Position(Medium, engine.Field.GetCell(0, 1));

            player.Io.StartGame();

            var options = player.Io.Options.GetAvailable();

            Assert.AreEqual(3, options.Count);             // 1 movement + 2 deployment

            CardOption LightOption = options[0];
            CardOption medicOption = options[2];

            Assert.AreEqual(Light.Id, LightOption.CardId);
            Assert.AreEqual(medic.Id, medicOption.CardId);

            Assert.AreEqual(null, LightOption.Attacks);
            Assert.AreEqual(null, LightOption.Moves);
            Assert.AreEqual(null, LightOption.Orders);

            Assert.AreEqual(TargetType.Cell, LightOption.Deploys.Type);
            Assert.AreEqual(2, LightOption.Deploys.Cells.Length);

            Assert.AreEqual(1, LightOption.Deploys.Cells[0].X);
            Assert.AreEqual(0, LightOption.Deploys.Cells[0].Y);

            Assert.AreEqual(1, LightOption.Deploys.Cells[1].X);
            Assert.AreEqual(1, LightOption.Deploys.Cells[1].Y);

            Assert.AreEqual(TargetType.Global, medicOption.Deploys.Type);
            Assert.AreEqual(null, medicOption.Deploys.Cells);

            player.Io.Deploy(new Io.Position
            {
                CardId = Light.Id,
                X      = 1,
                Y      = 0
            });

            var newOptions = player.Io.Options.GetAvailable();

            Assert.AreEqual(2, newOptions.Count);             // 2 movements
            Assert.AreEqual(Light.Id, newOptions[0].CardId);
            Assert.AreEqual(Medium.Id, newOptions[1].CardId);
        }