public GameV2() { Entities = new Dictionary<int, Entity>(); CurrentGameMode = GameMode.None; IsInMenu = true; SetAsideCards = new List<string>(); OpponentReturnedToDeck = new List<KeyValuePair<string, int>>(); PlayerDeck = new ObservableCollection<Card>(); PlayerDrawn = new ObservableCollection<Card>(); PlayerDrawnIdsTotal = new ObservableCollection<string>(); OpponentCards = new ObservableCollection<Card>(); PossibleArenaCards = new List<Card>(); PossibleConstructedCards = new List<Card>(); OpponentHandAge = new int[MaxHandSize]; OpponentHandMarks = new CardMark[MaxHandSize]; OpponentStolenCardsInformation = new Card[MaxHandSize]; OpponentSecrets = new OpponentSecrets(); for(var i = 0; i < MaxHandSize; i++) { OpponentHandAge[i] = -1; OpponentHandMarks[i] = CardMark.None; } }
static Game() { Entities = new Dictionary <int, Entity>(); CurrentGameMode = GameMode.None; IsInMenu = true; SetAsideCards = new List <string>(); OpponentReturnedToDeck = new List <KeyValuePair <string, int> >(); PlayerDeck = new ObservableCollection <Card>(); PlayerDrawn = new ObservableCollection <Card>(); OpponentCards = new ObservableCollection <Card>(); PossibleArenaCards = new List <Card>(); PossibleConstructedCards = new List <Card>(); _cardDb = new Dictionary <string, Card>(); OpponentHandAge = new int[MaxHandSize]; OpponentHandMarks = new CardMark[MaxHandSize]; OpponentStolenCardsInformation = new Card[MaxHandSize]; OpponentSecrets = new OpponentSecrets(); for (var i = 0; i < MaxHandSize; i++) { OpponentHandAge[i] = -1; OpponentHandMarks[i] = CardMark.None; } LoadCardDb(Helper.LanguageDict.ContainsValue(Config.Instance.SelectedLanguage) ? Config.Instance.SelectedLanguage : "enUS"); }
static Game() { Entities = new Dictionary<int, Entity>(); CurrentGameMode = GameMode.None; IsInMenu = true; SetAsideCards = new List<string>(); OpponentReturnedToDeck = new List<KeyValuePair<string, int>>(); PlayerDeck = new ObservableCollection<Card>(); PlayerDrawn = new ObservableCollection<Card>(); OpponentCards = new ObservableCollection<Card>(); PossibleArenaCards = new List<Card>(); PossibleConstructedCards = new List<Card>(); _cardDb = new Dictionary<string, Card>(); OpponentHandAge = new int[MaxHandSize]; OpponentHandMarks = new CardMark[MaxHandSize]; OpponentStolenCardsInformation = new Card[MaxHandSize]; OpponentSecrets = new OpponentSecrets(); for(var i = 0; i < MaxHandSize; i++) { OpponentHandAge[i] = -1; OpponentHandMarks[i] = CardMark.None; } LoadCardDb(Helper.LanguageDict.ContainsValue(Config.Instance.SelectedLanguage) ? Config.Instance.SelectedLanguage : "enUS"); }
public void Reset(bool resetStats = true) { Logger.WriteLine(">>>>>>>>>>> Reset <<<<<<<<<<<", "Game"); ReplayMaker.Reset(); PlayerDrawn.Clear(); PlayerDrawnIdsTotal.Clear(); Entities.Clear(); PlayerId = -1; OpponentId = -1; SavedReplay = false; PlayerHandCount = 0; PlayerFatigueCount = 0; OpponentSecretCount = 0; OpponentCards.Clear(); OpponentHandCount = 0; OpponentFatigueCount = 0; OpponentDeckCount = 30; PlayerDeckSize = 30; SecondToLastUsedId = null; OpponentHandAge = new int[MaxHandSize]; OpponentHandMarks = new CardMark[MaxHandSize]; OpponentStolenCardsInformation = new Card[MaxHandSize]; OpponentSecrets.ClearSecrets(); NoMatchingDeck = false; _playingAs = null; for (var i = 0; i < MaxHandSize; i++) { OpponentHandAge[i] = -1; OpponentHandMarks[i] = CardMark.None; } // Assuming opponent has coin, corrected if we draw it OpponentHandMarks[DefaultCoinPosition] = CardMark.Coin; OpponentHandAge[DefaultCoinPosition] = 0; OpponentHasCoin = true; SetAsideCards.Clear(); OpponentReturnedToDeck.Clear(); //if(CurrentGameMode == GameMode.Ranked) //otherwise switching from playing ranked to casual causes problems // CurrentGameMode = GameMode.Casual; if (!IsInMenu && resetStats) { if (CurrentGameMode != GameMode.Spectator) { CurrentGameMode = GameMode.None; } CurrentGameStats = new GameStats(GameResult.None, PlayingAgainst, PlayingAs) { PlayerName = PlayerName, OpponentName = OpponentName, Region = CurrentRegion }; } hsLogLines = new List <string>(); }
public static void Reset(bool resetStats = true) { Logger.WriteLine(">>>>>>>>>>> Reset <<<<<<<<<<<"); PlayerDrawn.Clear(); PlayerHandCount = 0; OpponentSecretCount = 0; OpponentCards.Clear(); OpponentHandCount = 0; OpponentDeckCount = 30; OpponentHandAge = new int[MaxHandSize]; OpponentHandMarks = new CardMark[MaxHandSize]; OpponentSecrets.ClearSecrets(); for (var i = 0; i < MaxHandSize; i++) { OpponentHandAge[i] = -1; OpponentHandMarks[i] = CardMark.None; } // Assuming opponent has coin, corrected if we draw it OpponentHandMarks[DefaultCoinPosition] = CardMark.Coin; OpponentHandAge[DefaultCoinPosition] = 0; OpponentHasCoin = true; SetAsideCards.Clear(); OpponentReturnedToDeck.Clear(); if (!IsInMenu && resetStats) { CurrentGameStats = new GameStats(GameResult.None, PlayingAgainst, PlayingAs); } }
bool isFlush(List <CardMark> mark) { CardMark cm = mark[0]; if (mark.Count(m => m == cm) != mark.Count) { return(false); } return(true); }
public static void Reset(bool resetStats = true) { Logger.WriteLine(">>>>>>>>>>> Reset <<<<<<<<<<<"); ReplayMaker.Reset(); PlayerDrawn.Clear(); Entities.Clear(); PlayerId = -1; OpponentId = -1; SavedReplay = false; PlayerHandCount = 0; OpponentSecretCount = 0; OpponentCards.Clear(); OpponentHandCount = 0; OpponentDeckCount = 30; SecondToLastUsedId = null; OpponentHandAge = new int[MaxHandSize]; OpponentHandMarks = new CardMark[MaxHandSize]; OpponentStolenCardsInformation = new Card[MaxHandSize]; OpponentSecrets.ClearSecrets(); for (var i = 0; i < MaxHandSize; i++) { OpponentHandAge[i] = -1; OpponentHandMarks[i] = CardMark.None; } // Assuming opponent has coin, corrected if we draw it OpponentHandMarks[DefaultCoinPosition] = CardMark.Coin; OpponentHandAge[DefaultCoinPosition] = 0; OpponentHasCoin = true; SetAsideCards.Clear(); OpponentReturnedToDeck.Clear(); if (!IsInMenu && resetStats) { CurrentGameStats = new GameStats(GameResult.None, PlayingAgainst, PlayingAs) { PlayerName = PlayerName, OpponentName = OpponentName }; } hsLogLines = new List <string>(); }
public GameV2() { Entities = new Dictionary <int, Entity>(); CurrentGameMode = GameMode.None; IsInMenu = true; SetAsideCards = new List <string>(); OpponentReturnedToDeck = new List <KeyValuePair <string, int> >(); PlayerDeck = new ObservableCollection <Card>(); PlayerDrawn = new ObservableCollection <Card>(); OpponentCards = new ObservableCollection <Card>(); PossibleArenaCards = new List <Card>(); PossibleConstructedCards = new List <Card>(); OpponentHandAge = new int[MaxHandSize]; OpponentHandMarks = new CardMark[MaxHandSize]; OpponentStolenCardsInformation = new Card[MaxHandSize]; OpponentSecrets = new OpponentSecrets(); for (var i = 0; i < MaxHandSize; i++) { OpponentHandAge[i] = -1; OpponentHandMarks[i] = CardMark.None; } }
public Game(string languageTag) { IsInMenu = true; PlayerDeck = new ObservableCollection<Card>(); PlayerDrawn = new ObservableCollection<Card>(); OpponentCards = new ObservableCollection<Card>(); _cardDb = new Dictionary<string, Card>(); OpponentHandAge = new int[MaxHandSize]; OpponentHandMarks = new CardMark[MaxHandSize]; for (int i = 0; i < MaxHandSize; i++) { OpponentHandAge[i] = -1; OpponentHandMarks[i] = CardMark.None; } LoadCardDb(languageTag); }
public static void Reset(bool resetStats = true) { Logger.WriteLine(">>>>>>>>>>> Reset <<<<<<<<<<<", "Game"); ReplayMaker.Reset(); PlayerDrawn.Clear(); Entities.Clear(); PlayerId = -1; OpponentId = -1; SavedReplay = false; PlayerHandCount = 0; PlayerFatigueCount = 0; OpponentSecretCount = 0; OpponentCards.Clear(); OpponentHandCount = 0; OpponentFatigueCount = 0; OpponentDeckCount = 30; PlayerDeckSize = 30; SecondToLastUsedId = null; OpponentHandAge = new int[MaxHandSize]; OpponentHandMarks = new CardMark[MaxHandSize]; OpponentStolenCardsInformation = new Card[MaxHandSize]; OpponentSecrets.ClearSecrets(); NoMatchingDeck = false; for(var i = 0; i < MaxHandSize; i++) { OpponentHandAge[i] = -1; OpponentHandMarks[i] = CardMark.None; } // Assuming opponent has coin, corrected if we draw it OpponentHandMarks[DefaultCoinPosition] = CardMark.Coin; OpponentHandAge[DefaultCoinPosition] = 0; OpponentHasCoin = true; SetAsideCards.Clear(); OpponentReturnedToDeck.Clear(); //if(CurrentGameMode == GameMode.Ranked) //otherwise switching from playing ranked to casual causes problems // CurrentGameMode = GameMode.Casual; if(!IsInMenu && resetStats) { if(CurrentGameMode != GameMode.Spectator) CurrentGameMode = GameMode.None; CurrentGameStats = new GameStats(GameResult.None, PlayingAgainst, PlayingAs) { PlayerName = PlayerName, OpponentName = OpponentName, Region = CurrentRegion }; } hsLogLines = new List<string>(); }
private void UpdateRevealedEntity(CardEntity entity, int turn, bool? discarded = null, CardMark? cardMark = null) { var revealed = RevealedCards.FirstOrDefault(ce => ce.Entity == entity.Entity || (ce.CardId == entity.CardId && ce.Entity == null && ce.Turn <= entity.PrevTurn)); if(revealed != null) { revealed.Update(entity.Entity); } else { revealed = new CardEntity(entity.Entity) {Turn = turn, Created = entity.Created, Discarded = entity.Discarded}; RevealedCards.Add(revealed); } if(discarded.HasValue) revealed.Discarded = discarded.Value; if(cardMark.HasValue) revealed.CardMark = cardMark.Value; }
private void UpdateRevealedEntity(CardEntity entity, int turn, bool? discarded = null, CardMark? cardMark = null) { var revealed = RevealedCards.FirstOrDefault( ce => ce.Entity == entity.Entity || (ce.CardId == entity.CardId && ce.Entity == null && ce.Turn <= entity.PrevTurn)); if(revealed != null) revealed.Update(entity.Entity); else { revealed = new CardEntity(entity.Entity) {Turn = turn, Created = entity.Created, Discarded = entity.Discarded}; var cardType = entity.Entity.GetTag(GAME_TAG.CARDTYPE); if(cardType != (int)TAG_CARDTYPE.HERO && cardType != (int)TAG_CARDTYPE.ENCHANTMENT && cardType != (int)TAG_CARDTYPE.HERO_POWER && cardType != (int)TAG_CARDTYPE.PLAYER) RevealedCards.Add(revealed); } if(discarded.HasValue) revealed.Discarded = discarded.Value; if(cardMark.HasValue) revealed.CardMark = cardMark.Value; }