Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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;