public bool ShowFriendlySidePlayerTurnReminder() { GameState state = GameState.Get(); if (state.IsMulliganManagerActive()) { return(false); } Player friendlySidePlayer = state.GetFriendlySidePlayer(); if (friendlySidePlayer == null) { return(false); } if (!friendlySidePlayer.IsCurrentPlayer()) { return(false); } ZoneMgr mgr = ZoneMgr.Get(); if (mgr == null) { return(false); } ZonePlay play = mgr.FindZoneOfType <ZonePlay>(Player.Side.FRIENDLY); if (play == null) { return(false); } List <Card> cards = this.GenerateCardsToRemindList(state, play.GetCards()); if (cards.Count != 0) { this.PlayReminders(cards); } return(true); }
public PlayErrors.SourceEntityInfo ConvertToSourceInfo(PlayErrors.PlayRequirementInfo playRequirementInfo, Entity parent) { List <string> entourageCardIDs = this.GetEntityDef().GetEntourageCardIDs(); List <string> list2 = new List <string>(); int num = 0; ZoneMgr mgr = ZoneMgr.Get(); if (mgr != null) { ZonePlay play = mgr.FindZoneOfType <ZonePlay>(Player.Side.FRIENDLY); if (play != null) { foreach (Card card in play.GetCards()) { Entity entity = card.GetEntity(); if (entity != null) { list2.Add(entity.GetCardId()); } } } ZonePlay play2 = mgr.FindZoneOfType <ZonePlay>(Player.Side.OPPOSING); if (play2 != null) { foreach (Card card2 in play2.GetCards()) { Entity entity2 = card2.GetEntity(); if ((entity2 != null) && entity2.IsMinion()) { num++; } } } } PlayErrors.SourceEntityInfo info = new PlayErrors.SourceEntityInfo { requirementsMap = playRequirementInfo.requirementsMap, id = base.GetEntityId(), cost = base.GetCost(), attack = base.GetATK(), minAttackRequirement = playRequirementInfo.paramMinAtk, maxAttackRequirement = playRequirementInfo.paramMaxAtk, raceRequirement = playRequirementInfo.paramRace, numMinionSlotsRequirement = playRequirementInfo.paramNumMinionSlots, numMinionSlotsWithTargetRequirement = playRequirementInfo.paramNumMinionSlotsWithTarget, minTotalMinionsRequirement = playRequirementInfo.paramMinNumTotalMinions, minFriendlyMinionsRequirement = playRequirementInfo.paramMinNumFriendlyMinions, minEnemyMinionsRequirement = playRequirementInfo.paramMinNumEnemyMinions, numTurnsInPlay = base.GetNumTurnsInPlay(), numAttacksThisTurn = base.GetNumAttacksThisTurn(), numWindfury = base.GetWindfury(), cardType = base.GetCardType(), zone = base.GetZone(), isSecret = base.IsSecret(), isDuplicateSecret = false }; if (info.isSecret) { Player player = GameState.Get().GetPlayer(base.GetControllerId()); if (player != null) { foreach (string str in player.GetSecretDefinitions()) { if (this.GetCardId().Equals(str, StringComparison.OrdinalIgnoreCase)) { info.isDuplicateSecret = true; break; } } } } info.isExhausted = base.IsExhausted(); info.isMasterPower = (base.GetZone() == TAG_ZONE.HAND) || base.IsHeroPower(); info.isActionPower = TAG_ZONE.HAND == base.GetZone(); info.isActivatePower = (base.GetZone() == TAG_ZONE.PLAY) || base.IsHeroPower(); info.isAttackPower = base.IsHero() || (!base.IsHeroPower() && (TAG_ZONE.PLAY == base.GetZone())); info.isFrozen = base.IsFrozen(); info.hasBattlecry = base.HasBattlecry(); info.canAttack = base.CanAttack(); info.entireEntourageInPlay = false; if (entourageCardIDs.Count > 0) { info.entireEntourageInPlay = list2.Count > 0;