private Race GetRace(HearthDb.Card card)
        {
            var racesInText = Races
                              .Where(x => x != Race.ALL && x != Race.INVALID)
                              .Where(x => card.GetLocText(Locale.enUS)?.Contains(HearthDbConverter.RaceConverter(x)) ?? false)
                              .ToList();

            if (racesInText.Count == 1)
            {
                return(racesInText.Single());
            }
            return(card.Race);
        }
Exemple #2
0
		static Cards()
		{
			var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("HearthDb.CardDefs.xml");
			if(stream == null)
				return;
			using(TextReader tr = new StreamReader(stream))
			{
				var xml = new XmlSerializer(typeof(CardDefs.CardDefs));
				var cardDefs = (CardDefs.CardDefs)xml.Deserialize(tr);
				foreach(var entity in cardDefs.Entites)
				{
					var card = new Card(entity);
					All.Add(entity.CardId, card);
					if(card.Collectible && card.Type != CardType.HERO)
						Collectible.Add(entity.CardId, card);
				}
			}
		}
        private void ProcessCardEntity(Entity entity)
        {
            Card card = Cards.GetCardFromId(entity.CardId);

            if (card == null)
            {
                return;
            }
            int controller = entity.GetTag(GameTag.CONTROLLER);

            if (card.Collectible)
            {
                if (controller == Info.OpposingPlayer.Id)
                {
                    //Hero
                    if (card.Type == CardType.HERO)
                    {
                        Opponent.Deck.HeroDbfId = card.DbfId;
                        Opponent.Deck.CardsInDeck.Add(card);
                    }
                    else if (card.Type != CardType.HERO_POWER)
                    {
                        Opponent.Deck.CardsInDeck.Add(card);
                    }
                }
                else if (controller == Info.LocalPlayer.Id)
                {
                    //Hero
                    if (card.Type == CardType.HERO)
                    {
                        User.Deck.HeroDbfId = card.DbfId;
                        User.Deck.CardsInDeck.Add(card);
                    }
                    else if (card.Type != CardType.HERO_POWER)
                    {
                        User.Deck.CardsInDeck.Add(card);
                    }
                }
            }
        }
Exemple #4
0
 public static bool IsDungeonBoss(HearthDb.Card card) =>
 card != null && card.Id.Contains("BOSS") && DungeonRunSets.Contains(card.Set);
Exemple #5
0
 public Card(HearthDb.Card card, int count = 1)
 {
     Id    = card.Id;
     Count = count;
     _card = card;
 }