/// <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)); }
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); }