public MainWindow() { InitializeComponent(); CbxFormat.ItemsSource = GuiHelper.FormatTypes; CbxFormat.SelectedIndex = 1; CbxClassCard.ItemsSource = GuiHelper.ClassTypes; CbxClassCard.SelectedIndex = 1; CbxDeckStrategy.ItemsSource = GuiHelper.StrategyTypes; CbxDeckStrategy.SelectedIndex = 1; if (File.Exists(Environment.CurrentDirectory + @"\allDecks.json")) { var json = File.ReadAllText(Environment.CurrentDirectory + @"\allDecks.json"); AllDecks = JsonConvert.DeserializeObject <List <MetaDeck> >(json); } else { AllDecks = new List <MetaDeck>(); } DtDeckFiles.ItemsSource = AllDecks; CboxAi1.ItemsSource = GuiHelper.StrategyTypes; CboxAi2.ItemsSource = GuiHelper.StrategyTypes; CboxDeck1.ItemsSource = AllDecks; CboxDeck1.SelectedIndex = 1; CboxDeck2.ItemsSource = AllDecks; CboxDeck2.SelectedIndex = 1; var help = CardAsciiBuilder.PrintHelp(); ViewBox.Text = help[0] + Environment.NewLine + help[1] + Environment.NewLine + help[2] + Environment.NewLine + help[3] + Environment.NewLine + help[4] + Environment.NewLine + help[5] + Environment.NewLine + Environment.NewLine + help[6] + Environment.NewLine + help[7] + Environment.NewLine + help[8] + Environment.NewLine + help[9] + Environment.NewLine + help[10] + Environment.NewLine + help[11] + Environment.NewLine + Environment.NewLine + help[12] + Environment.NewLine + help[13] + Environment.NewLine + help[14] + Environment.NewLine + help[15] + Environment.NewLine + help[16] + Environment.NewLine + help[17] + Environment.NewLine; }
private static string CreateHero(Hero hero, bool turn) { int cardCnt = 1; var zoneStr = new StringBuilder(); string spacer = new string(' ', 5 * (8 - cardCnt) + cardCnt + 1); StringBuilder[] zoneStrArray = new[] { new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), }; char[][] cardAscii = new CardAsciiBuilder().Create() .Name(hero.Card.Name) .Exhausted(hero.IsExhausted) .HeroPowerExhausted(hero.Power.IsExhausted) .AttackDamage(hero.AttackDamage) .Health(hero.Health) .HeroWeaponAttackDamage(hero.Weapon?.AttackDamage ?? 0) .HeroWeaponDurability(hero.Weapon?.Durability ?? 0) .Health(hero.Health) .Windfury(hero.HasWindfury) .Windfury(hero.IsFrozen) .Build(); int x = turn ? 1 : 0; zoneStrArray[0 + x].Append(new string(cardAscii[0])); zoneStrArray[1 + x].Append(new string(cardAscii[1])); zoneStrArray[2 + x].Append(new string(cardAscii[2])); zoneStrArray[3 + x].Append(new string(cardAscii[3]) + " " + hero.Power.Card.AbbreviatedName(7)); zoneStrArray[4 + x].Append(new string(cardAscii[4])); zoneStrArray[turn ? 0 : 5].Append(new string(cardAscii[5]) + " " + (hero.Controller == hero.Game.CurrentPlayer ? " <<==" : " ")); zoneStrArray[0].Append(" "); zoneStrArray[1].Append(" "); zoneStrArray[2].Append(" "); zoneStrArray[3].Append(" "); zoneStrArray[4].Append(" "); zoneStrArray[5].Append(" "); char[][] zoneAscii = new CardAsciiBuilder().Create().ZoneCards(hero.Controller.SecretZone.Count, hero.Controller.SecretZone.Type).Build(); int y = turn ? 1 : 0; string[] backStrArray = new[] { "", "", "", "", "", "" }; backStrArray[0 + y] = new string(zoneAscii[0]); backStrArray[1 + y] = new string(zoneAscii[1]); backStrArray[2 + y] = new string(zoneAscii[2]); backStrArray[3 + y] = new string(zoneAscii[3]); backStrArray[4 + y] = new string(zoneAscii[4]); backStrArray[turn ? 0 : 5] = new string(zoneAscii[5]); zoneStr.Append(zoneStrArray[0 + y].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[0] + " ¦")); zoneStr.Append(zoneStrArray[1 + y].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[1] + " ¦")); zoneStr.Append(zoneStrArray[2 + y].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[2] + " ¦")); zoneStr.Append(zoneStrArray[3 + y].AppendLine(spacer.Substring(9) + "¦ " + backStrArray[3] + " ¦")); zoneStr.Append(zoneStrArray[4 + y].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[4] + " ¦")); zoneStr.Append(zoneStrArray[turn ? 0 : 5].AppendLine(spacer.Substring(7) + "¦ " + backStrArray[5] + " ¦")); return(zoneStr.ToString()); }
private static string CreateZone(IZone zone, IZone outzone, bool turn) { var zoneStr = new StringBuilder(); string spacer = zone.Count == 10 ? new string(' ', 1) : new string(' ', 5 * (8 - zone.Count) + zone.Count + 1); StringBuilder[] zoneStrArray = new StringBuilder[] { new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), new StringBuilder("¦" + spacer), }; for (int i = 0; i < zone.Count; i++) { char[][] cardAscii = new char[6][]; var spell = zone[i] as Spell; var minion = zone[i] as Minion; var weapon = zone[i] as Weapon; if (spell != null) { cardAscii = new CardAsciiBuilder().Create() .Name(spell.Card.AbbreviatedName(7)) .Cost(spell.Cost) .SpellText(Regex.Replace(spell.Card.Text, @"<[^>]*>", "").Replace(Environment.NewLine, "")) .Type(CardType.SPELL) .Build(); } else if (minion != null) { cardAscii = new CardAsciiBuilder().Create() .Name(minion.Card.AbbreviatedName(7)) .Cost(minion.Cost) .Type(minion.Card.Type) .AttackDamage(minion.AttackDamage) .Health(minion.Health) .Spellpower(minion[GameTag.SPELLPOWER]) .Deathrattle(minion.HasDeathrattle) .Battlecry(minion.HasBattleCry) .Inspire(minion.HasInspire) .Poisonus(minion[GameTag.POISONOUS] == 1) .Silenced(minion.IsSilenced) .Freeze(minion[GameTag.FREEZE] == 1) .Charge(minion.HasCharge) .Taunt(minion.HasTaunt) .Stealth(minion.HasStealth) .Enrage(minion.IsEnraged) .Frozen(minion.IsFrozen) .DivineShield(minion.HasDivineShield) .Windfury(minion.HasWindfury) .Exhausted(minion.IsExhausted) .Build(); } else if (weapon != null) { cardAscii = new CardAsciiBuilder().Create() .Name(weapon.Card.AbbreviatedName(7)) .Cost(weapon.Cost) .Type(weapon.Card.Type) .AttackDamage(weapon.AttackDamage) .Durability(weapon.Durability) .Deathrattle(weapon[GameTag.DEATHRATTLE] == 1) .Battlecry(weapon[GameTag.BATTLECRY] == 1) .Windfury(weapon[GameTag.WINDFURY] == 1) .Exhausted(weapon.IsExhausted) .Build(); } int x = turn ? 1 : 0; zoneStrArray[0 + x].Append(new string(cardAscii[0])); zoneStrArray[1 + x].Append(new string(cardAscii[1])); zoneStrArray[2 + x].Append(new string(cardAscii[2])); zoneStrArray[3 + x].Append(new string(cardAscii[3])); zoneStrArray[4 + x].Append(new string(cardAscii[4])); zoneStrArray[turn ? 0 : 5].Append(new string(cardAscii[5])); if (i < zone.Count) { zoneStrArray[0].Append(" "); zoneStrArray[1].Append(" "); zoneStrArray[2].Append(" "); zoneStrArray[3].Append(" "); zoneStrArray[4].Append(" "); zoneStrArray[5].Append(" "); } } string[] backStrArray = new string[] { "", "", "", "", "", "" }; char[][] zoneAscii = new CardAsciiBuilder().Create().ZoneCards(outzone.Count, outzone.Type).Build(); int y = turn ? 1 : 0; backStrArray[0 + y] = new string(zoneAscii[0]); backStrArray[1 + y] = new string(zoneAscii[1]); backStrArray[2 + y] = new string(zoneAscii[2]); backStrArray[3 + y] = new string(zoneAscii[3]); backStrArray[4 + y] = new string(zoneAscii[4]); backStrArray[turn ? 0 : 5] = new string(zoneAscii[5]); zoneStr.Append(zoneStrArray[0].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[0] + " ¦")); zoneStr.Append(zoneStrArray[1].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[1] + " ¦")); zoneStr.Append(zoneStrArray[2].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[2] + " ¦")); zoneStr.Append(zoneStrArray[3].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[3] + " ¦")); zoneStr.Append(zoneStrArray[4].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[4] + " ¦")); zoneStr.Append(zoneStrArray[5].AppendLine(spacer.Substring(1) + "¦ " + backStrArray[5] + " ¦")); return(zoneStr.ToString()); }